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

Reply via email to