Hi, I am having problems with the below test case. I am using an extended googlebase Atom format to store my data. Included in the test case is a simplified version of my XML-document. PROBLEM: Why do I need to re-register namespace 'a' when using xpath through the result of a previous xpath()-statement? As you may notice the same is not true for namespace 'g'. I can't get this to make sense! Any insight would be much appreciated. Best regards, Mario Caprino <?php #Simpliefied sample data $str= <<<EOF <?xml version="1.0" encoding="iso-8859-1"?> <feed xmlns="http://www.w3.org/2005/Atom" xmlns:g="http://base.google.com/ns/1.0" xml:lang="en"> <entry> <g:mpn>10100</g:mpn> <title>My product</title> <title xml:lang="no">Mitt produkt</title> <g:price>299</g:price> </entry> </feed> EOF; #Load document $xml= simplexml_load_string ($str); $xml->registerXPathNamespace ('a', 'http://www.w3.org/2005/Atom'); $xml->registerXPathNamespace ('g', 'http://base.google.com/ns/1.0'); echo "This is what I am trying to achieve...\n"; $lang= 'no'; $id= '10100'; $title= $xml->xpath ("/a:feed/a:entry[g:mpn='$id']/a:title[lang('$lang')]"); echo utf8_decode ($title[0]) . "\n"; #--- echo "But I'd fist like to store the entity node, and then request several data nodes relative to it\n"; $entry= $xml->xpath ("/a:feed/a:entry[g:mpn='$id']"); $entry= &$entry[0]; $price= $entry->xpath ("g:price"); echo "This works as expected: $price[0]\n"; #$entry->registerXPathNamespace ('a', 'http://www.w3.org/2005/Atom'); $title= $entry->xpath ("a:title[lang('$lang')]"); echo '... but this will only work if I re-register the namespace "a"? ' . utf8_decode ($title[0]); ?> -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php