From: Operating system: CentOS 5 PHP version: 5.3.8 Package: SimpleXML related Bug Type: Bug Bug description:Incorrect xPath in children nodes
Description: ------------ For children nodes SimpleXMLElement::xpath searches the matching xPath in parent node. Workaround: Create new instances of SimpleXMLElement for each child. $xmlNode = new SimpleXMLElement($xmlNode->asXML()); Test script: --------------- $xmlData = <<<XML <foo> <bar> <a>first</a> </bar> <bar> <a>second</a> </bar> </foo> XML; $xmlObj = new SimpleXMLElement($xmlData); foreach ($xmlObj->children() as $xmlNode) { echo "<br>" . htmlspecialchars($xmlNode->asXML()) . "<br>"; var_dump($xmlNode->xpath("//a")); } Expected result: ---------------- <bar> <a>first</a> </bar> array(1) { [0]=> object(SimpleXMLElement)#333 (1) { [0]=> string(5) "first" } } <bar> <a>second</a> </bar> array(1) { [0]=> object(SimpleXMLElement)#333 (1) { [0]=> string(6) "second" } } Actual result: -------------- <bar> <a>first</a> </bar> array(2) { [0]=> object(SimpleXMLElement)#333 (1) { [0]=> string(5) "first" } [1]=> object(SimpleXMLElement)#335 (1) { [0]=> string(6) "second" } } <bar> <a>second</a> </bar> array(2) { [0]=> object(SimpleXMLElement)#331 (1) { [0]=> string(5) "first" } [1]=> object(SimpleXMLElement)#333 (1) { [0]=> string(6) "second" } } -- Edit bug report at https://bugs.php.net/bug.php?id=55766&edit=1 -- Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=55766&r=trysnapshot54 Try a snapshot (PHP 5.3): https://bugs.php.net/fix.php?id=55766&r=trysnapshot53 Try a snapshot (trunk): https://bugs.php.net/fix.php?id=55766&r=trysnapshottrunk Fixed in SVN: https://bugs.php.net/fix.php?id=55766&r=fixed Fixed in SVN and need be documented: https://bugs.php.net/fix.php?id=55766&r=needdocs Fixed in release: https://bugs.php.net/fix.php?id=55766&r=alreadyfixed Need backtrace: https://bugs.php.net/fix.php?id=55766&r=needtrace Need Reproduce Script: https://bugs.php.net/fix.php?id=55766&r=needscript Try newer version: https://bugs.php.net/fix.php?id=55766&r=oldversion Not developer issue: https://bugs.php.net/fix.php?id=55766&r=support Expected behavior: https://bugs.php.net/fix.php?id=55766&r=notwrong Not enough info: https://bugs.php.net/fix.php?id=55766&r=notenoughinfo Submitted twice: https://bugs.php.net/fix.php?id=55766&r=submittedtwice register_globals: https://bugs.php.net/fix.php?id=55766&r=globals PHP 4 support discontinued: https://bugs.php.net/fix.php?id=55766&r=php4 Daylight Savings: https://bugs.php.net/fix.php?id=55766&r=dst IIS Stability: https://bugs.php.net/fix.php?id=55766&r=isapi Install GNU Sed: https://bugs.php.net/fix.php?id=55766&r=gnused Floating point limitations: https://bugs.php.net/fix.php?id=55766&r=float No Zend Extensions: https://bugs.php.net/fix.php?id=55766&r=nozend MySQL Configuration Error: https://bugs.php.net/fix.php?id=55766&r=mysqlcfg