From: guenther dot stadler at gmx dot net
Operating system:
PHP version: 5.2.3
PHP Bug Type: SimpleXML related
Bug description: xPath beginning with "//" searches whole document
Description:
------------
When using // at the beginning of an xpath-query, not only the children of
the current SimpleXMLElement are searched (as stated in the manual), but
the whole XML document instead.
(So, actually, it might only be a documentation issue...)
If this is expected behaviour, how is one supposed to search all <bar>
elements, no whether where they are - but only under the current item
(whatever it might be)?
Reproduce code:
---------------
<?php
$xmlstr = <<<XML
<?xml version='1.0' standalone='yes'?>
<root>
<foo id="foo_1">
<node>
<bar>1</bar>
<bar>2</bar>
</node>
</foo>
<foo id="foo_2">
<node>
<bar>3</bar>
<bar>4</bar>
</node>
</foo>
</root>
XML;
$xml = new SimpleXMLElement($xmlstr);
$foo_list = $xml->xpath('//foo');
$foo = $foo_list[0]; // now we have the node with id="foo_1"
$bar_list = $foo->xpath('//bar');
foreach($bar_list as $this_bar)
echo "$this_bar ";
?>
Expected result:
----------------
1 2
Actual result:
--------------
1 2 3 4
--
Edit bug report at http://bugs.php.net/?id=42348&edit=1
--
Try a CVS snapshot (PHP 4.4):
http://bugs.php.net/fix.php?id=42348&r=trysnapshot44
Try a CVS snapshot (PHP 5.2):
http://bugs.php.net/fix.php?id=42348&r=trysnapshot52
Try a CVS snapshot (PHP 6.0):
http://bugs.php.net/fix.php?id=42348&r=trysnapshot60
Fixed in CVS: http://bugs.php.net/fix.php?id=42348&r=fixedcvs
Fixed in release:
http://bugs.php.net/fix.php?id=42348&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=42348&r=needtrace
Need Reproduce Script: http://bugs.php.net/fix.php?id=42348&r=needscript
Try newer version: http://bugs.php.net/fix.php?id=42348&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=42348&r=support
Expected behavior: http://bugs.php.net/fix.php?id=42348&r=notwrong
Not enough info:
http://bugs.php.net/fix.php?id=42348&r=notenoughinfo
Submitted twice:
http://bugs.php.net/fix.php?id=42348&r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=42348&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=42348&r=php3
Daylight Savings: http://bugs.php.net/fix.php?id=42348&r=dst
IIS Stability: http://bugs.php.net/fix.php?id=42348&r=isapi
Install GNU Sed: http://bugs.php.net/fix.php?id=42348&r=gnused
Floating point limitations: http://bugs.php.net/fix.php?id=42348&r=float
No Zend Extensions: http://bugs.php.net/fix.php?id=42348&r=nozend
MySQL Configuration Error: http://bugs.php.net/fix.php?id=42348&r=mysqlcfg