I'm trying to get xml information from an url to be imported into mysql trough a php script, but I'm having some trouble and my experience dosen't cover this area. The XML is formed as this example:
 <?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:g="http://base.google.se/ns/1.0">
<channel>
  <title></title>
  <description></description>
  <link></link>
  <item>
    <g:id></g:id>
    <title></title>
    <g:product></g:product>
  </item>
  <item>
    <g:id></g:id>
    <title></title>
    <g:product></g:product>
  </item>
and so on...
with the php script:
<?php
include '../connection-to-db.php';
$str_xml = file_get_contents('http://www.example.com/xmls/xmlfile.xml');
$library = new SimpleXMLElement($str_xml);
$arr = json_decode( json_encode($library) , true);
var_dump ($arr);
echo "Array got " .sizeof($arr['item']) . " items.<br> <br>";
if (sizeof($arr['item']) > 155555500) {
    mysql_query("TRUNCATE TABLE google_stat");
    $count = 0;
    foreach ($arr['item'] as $shelf)
    {
        $gId = mysql_real_escape_string($shelf['g:id']);
        $Title = mysql_real_escape_string($shelf['title']);
        $gProductType = mysql_real_escape_string($shelf['g:product']);
        mysql_query("INSERT INTO google_stat (gid, title, gcategory) 
                    VALUES ('$gID', '$Title', '$gCategory')")
                    or die(mysql_error());
        $count ++;
    }
    echo " Counted: " . $count . "inserts";
} else {
    echo "Non counted, no insert done";
}
?>
Problem is when SimpleXMLElement it seems all items with g: in there names disappears when I look at the output, it dosen't even fint any items. I've even tried with a localfile with same XML tree and can't even make that work. I'm thankful for any help given, since I realize more and more I'm on deep water with this.
UPDATE:
<?php
    include '../connection-to-db.php';
    $str_xml = file_get_contents('http://www.example.com/xmls/xmlfile.xml');
    $library = new SimpleXMLElement($str_xml);
    $arr = json_decode( json_encode($library) , true);
    echo "Array got " .sizeof($library->channel->item) . " items.<br> <br>";
    if (sizeof($library->channel->item) > 100) {
        mysql_query("TRUNCATE TABLE google_stat");
        $count = 0;
        foreach ($library->channel->item as $shelf)
        {
            $gId = (string) $shelf->children('g', TRUE)->id;
            $Title = (string) $shelf->title;
            $gProductType = $shelf->children('g', TRUE)->product;
             echo $gId."<br />";
             echo $Title."<br />";
             echo $gProductType."<br />";
            $count ++;
        }
        echo " Counted: " . $count . "inserts";
    } else {
        echo "Non counted, no insert done";
    }
    ?>
Now I get the number of items in array, but $gId, $Title etc, dosen't echo any values.
Edit2: had to high array check, it works.
 
    