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