XPath and Multiple Namespaces

From: Date: Mon, 01 Dec 2003 16:46:30 +0000
Subject: XPath and Multiple Namespaces
Groups: php.xml.dev 
Request: Send a blank email to php-xml-dev+get-261@lists.php.net to get a copy of this message
I'm having nightmares with xpath queries on xml documents with multiple namespaces. For example, take the following test file: <test xmlns="http://main.com" xmlns:sub="http://sub.com"> <item> <subitem> <sub:testnode>Testing 1 2 3</sub:testnode> </subitem> </item> </test> You'd expect that I could access the testnode using: /i:test/i:item/i:subitem/sub:testnode Where i is a reference to the default namespace specified using xpath_register_ns() as was suggested in a post on one of the news groups. But it seems that xpath_register_ns() overwrites previously specified namespaces, for example: 1 $xpath = $dom->xpath_new_context(); 2 xpath_register_ns($xpath,"sub", "http://sub.com"); 3 xpath_register_ns($xpath,"i", "http://main.com"); 4 $xnode = xpath_eval($xpath,"/i:test"); 5 print_r($xnode); Will find the root node, however swap lines 2 and 3 around and it will fail. So my problem seems to stem from registering multiple name spaces. Hope this makes sense and someone can help. Regards Dan --------------------------------------------- act : making e-learning work --------------------------------------------- Daniel Pupius BSc(hons) MA Senior Lead Developer email: daniel.pupius@actelearning.com New Oxford House 30 Barker's Pool Sheffield S1 2HB Tel: 0114 278 0798 Fax: 0114 249 1773 --------------------------------------------- http://www.actelearning.com/ ---------------------------------------------

« previous php.xml.dev (#261) next »