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