#42437 [NEW]: Results from xpath() cannot be deleted

2007-08-27 Thread guenther dot stadler at gmx dot net
From: guenther dot stadler at gmx dot net
Operating system: 
PHP version:  5.2.3
PHP Bug Type: SimpleXML related
Bug description:  Results from xpath() cannot be deleted

Description:

Elements of the array returned by xpath() cannot be deleted.
I can change those elements, but deleting is impossible.

How can I delete a node returned by xpath()? Is there a way to find out
where the node I found is within the whole xml tree?

Thanks, Günther.

Reproduce code:
---
?php
$xmlstr = XML
?xml version='1.0' standalone='yes'?
root
 movieMovie One/movie
 movieMovie Two/movie
/root
XML;

$xml = new SimpleXMLElement($xmlstr);

$movs = $xml-xpath('//movie');

// Trying to delete the reference returned by xpath
unset($movs[0]);

// $movs[0] = NULL; doesn't work either

// No changes
echo $xml-asXML();

?


Expected result:

?xml version=1.0 standalone=yes?
root
 movieMovie Two/movie
/root

Actual result:
--
?xml version=1.0 standalone=yes?
root
 movieMovie One/movie
 movieMovie Two/movie
/root

-- 
Edit bug report at http://bugs.php.net/?id=42437edit=1
-- 
Try a CVS snapshot (PHP 4.4): 
http://bugs.php.net/fix.php?id=42437r=trysnapshot44
Try a CVS snapshot (PHP 5.2): 
http://bugs.php.net/fix.php?id=42437r=trysnapshot52
Try a CVS snapshot (PHP 6.0): 
http://bugs.php.net/fix.php?id=42437r=trysnapshot60
Fixed in CVS: http://bugs.php.net/fix.php?id=42437r=fixedcvs
Fixed in release: 
http://bugs.php.net/fix.php?id=42437r=alreadyfixed
Need backtrace:   http://bugs.php.net/fix.php?id=42437r=needtrace
Need Reproduce Script:http://bugs.php.net/fix.php?id=42437r=needscript
Try newer version:http://bugs.php.net/fix.php?id=42437r=oldversion
Not developer issue:  http://bugs.php.net/fix.php?id=42437r=support
Expected behavior:http://bugs.php.net/fix.php?id=42437r=notwrong
Not enough info:  
http://bugs.php.net/fix.php?id=42437r=notenoughinfo
Submitted twice:  
http://bugs.php.net/fix.php?id=42437r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=42437r=globals
PHP 3 support discontinued:   http://bugs.php.net/fix.php?id=42437r=php3
Daylight Savings: http://bugs.php.net/fix.php?id=42437r=dst
IIS Stability:http://bugs.php.net/fix.php?id=42437r=isapi
Install GNU Sed:  http://bugs.php.net/fix.php?id=42437r=gnused
Floating point limitations:   http://bugs.php.net/fix.php?id=42437r=float
No Zend Extensions:   http://bugs.php.net/fix.php?id=42437r=nozend
MySQL Configuration Error:http://bugs.php.net/fix.php?id=42437r=mysqlcfg


#42348 [NEW]: xPath beginning with // searches whole document

2007-08-20 Thread guenther dot stadler at gmx dot net
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
   bar1/bar
   bar2/bar
  /node
 /foo
 foo id=foo_2
  node
   bar3/bar
   bar4/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=42348edit=1
-- 
Try a CVS snapshot (PHP 4.4): 
http://bugs.php.net/fix.php?id=42348r=trysnapshot44
Try a CVS snapshot (PHP 5.2): 
http://bugs.php.net/fix.php?id=42348r=trysnapshot52
Try a CVS snapshot (PHP 6.0): 
http://bugs.php.net/fix.php?id=42348r=trysnapshot60
Fixed in CVS: http://bugs.php.net/fix.php?id=42348r=fixedcvs
Fixed in release: 
http://bugs.php.net/fix.php?id=42348r=alreadyfixed
Need backtrace:   http://bugs.php.net/fix.php?id=42348r=needtrace
Need Reproduce Script:http://bugs.php.net/fix.php?id=42348r=needscript
Try newer version:http://bugs.php.net/fix.php?id=42348r=oldversion
Not developer issue:  http://bugs.php.net/fix.php?id=42348r=support
Expected behavior:http://bugs.php.net/fix.php?id=42348r=notwrong
Not enough info:  
http://bugs.php.net/fix.php?id=42348r=notenoughinfo
Submitted twice:  
http://bugs.php.net/fix.php?id=42348r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=42348r=globals
PHP 3 support discontinued:   http://bugs.php.net/fix.php?id=42348r=php3
Daylight Savings: http://bugs.php.net/fix.php?id=42348r=dst
IIS Stability:http://bugs.php.net/fix.php?id=42348r=isapi
Install GNU Sed:  http://bugs.php.net/fix.php?id=42348r=gnused
Floating point limitations:   http://bugs.php.net/fix.php?id=42348r=float
No Zend Extensions:   http://bugs.php.net/fix.php?id=42348r=nozend
MySQL Configuration Error:http://bugs.php.net/fix.php?id=42348r=mysqlcfg