#42289 [Asn->Csd]: xpath relative paths incorrectly returns no match
| From: | vrana@php.net | Date: | Mon, 20 Aug 2007 14:53:38 +0000 |
| Subject: | #42289 [Asn->Csd]: xpath relative paths incorrectly returns no match | ||
| References: | 1 | Groups: | php.doc |
| Request: | Send a blank email to phpdoc+get-969377793@lists.php.net to get a copy of this message | ||
ID: 42289
Updated by: vrana@php.net
Reported By: cpriest at warpmail dot net
-Status: Assigned
+Status: Closed
Bug Type: Documentation problem
Operating System: *
PHP Version: 5.2.4RC1
Assigned To: rrichards
New Comment:
This bug has been fixed in the documentation's XML sources. Since the
online and downloadable versions of the documentation need some time
to get updated, we would like to ask you to be a bit patient.
Thank you for the report, and for helping us make our documentation
better.
"Returns an array of SimpleXMLElement objects or FALSE in case of an
error."
Previous Comments:
------------------------------------------------------------------------
[2007-08-18 10:11:40] rrichards@php.net
re-classifying as documentation issue. xpath() returns boolean on
failure.
------------------------------------------------------------------------
[2007-08-17 13:39:17] jani@php.net
Rob, you didn't get away that easy. :)
------------------------------------------------------------------------
[2007-08-15 14:27:41] cpriest at warpmail dot net
According to the specs:
> Always returns an array of SimpleXMLElement objects.
While the xpath() is actually returning a boolean value. Here is some
revised code which demonstrates an incorrect return value:
<?php
require_once('inc.backend.interactive.php');
header('Content-Type: text/plain');
set_time_limit(0);
$ResponseBody = '<?xml version="1.0"
encoding="UTF-8"?><postresponse><status
accept="no">INVALID</status></postresponse>';
$objXML = new SimpleXMLElement($ResponseBody);
$tMatches = $objXML->xpath('postresponse/status/@accept');
print_r($tMatches);
print_r(gettype($tMatches));
// print_r((string)$tMatches[0]);
?>
------------------------------------------------------------------------
[2007-08-14 11:56:16] rrichards@php.net
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
output is correct. $objXML is document element
------------------------------------------------------------------------
[2007-08-14 01:12:55] cpriest at warpmail dot net
Description:
------------
Non-absolute paths using ->xpath() do not match appropriately. With
the given example, changing the xpath to '/postresponse/status/@accept'
correctly returns "no"
Reproduce code:
---------------
<?
$ResponseBody = '<?xml version="1.0"
encoding="UTF-8"?><postresponse><status
accept="no">INVALID</status></postresponse>';
$objXML = new SimpleXMLElement($ResponseBody);
$tMatches = $objXML->xpath('postresponse/status/@accept');
print_r((string)$tMatches[0]);
?>
Expected result:
----------------
"no"
Actual result:
--------------
xpath() returns no results
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=42289&edit=1