ID: 42289
Updated by: [EMAIL PROTECTED]
Reported By: cpriest at warpmail dot net
Status: Assigned
-Bug Type: SimpleXML related
+Bug Type: Documentation problem
Operating System: *
PHP Version: 5.2.4RC1
Assigned To: rrichards
New Comment:
re-classifying as documentation issue. xpath() returns boolean on
failure.
Previous Comments:
------------------------------------------------------------------------
[2007-08-17 13:39:17] [EMAIL PROTECTED]
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] [EMAIL PROTECTED]
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