ID:               33906
 User updated by:  ray-chords at gmx dot net
 Reported By:      ray-chords at gmx dot net
 Status:           Bogus
 Bug Type:         SimpleXML related
 Operating System: Debian Sarge
 PHP Version:      5.0.4
 New Comment:

no, casting to string has no effect.

As I find out, a SimpleXMLElement including just one node with only one
value must be called directly.

change line 17: $out = ($v->id == 'pwd') ? 'OK' : 'FALSE'; 
to:             $out = ($v == 'pwd') ? 'OK' : 'FALSE';

and it works as expected.


Previous Comments:
------------------------------------------------------------------------

[2005-07-28 16:23:15] [EMAIL PROTECTED]

RTFM. You have to cast to string first.


------------------------------------------------------------------------

[2005-07-28 16:07:03] ray-chords at gmx dot net

Description:
------------
Intention was to compare a string value with an xml node value. But
direct access to the value fails.

Reproduce code:
---------------
<?php
$xml_string = <<<EOD
<?xml version="1.0" encoding="iso-8859-1" standalone="yes" ?>
<document>
    <command default="yes"><id><![CDATA[li]]></id></command>
    <command><id><![CDATA[reg]]></id></command>
    <command><id><![CDATA[cq]]></id></command>
    <command><id><![CDATA[tipp]]></id></command>
    <command><id><![CDATA[pwd]]></id></command>
</document>
EOD;

$xml = simplexml_load_string($xml_string);
$template = $xml->xpath('/document/command/id');
foreach ($template as $v) {
    $out = ($v->id == 'pwd') ? 'OK' : 'FALSE'; 
    print $out . "\n";
}
?>

Expected result:
----------------
I'd expected an 'OK' in the last loop. But I always get 'FALSE'.



------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=33906&edit=1

Reply via email to