#42289 [Asn->Csd]: xpath relative paths incorrectly returns no match

From: 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

« previous php.doc (#969377793) next »