php中simplexml_load_string使用实例分享
先用一段代码重现一下问题 乍一看,结果很让人费解: 代码如下: $string = <<
EOF; $data = simplexml_load_string($string); print_r($data); 乍一看,结果很让人费解: 代码如下: SimpleXMLElement Object
( [foo] => Array ( [0] => SimpleXMLElement Object ( [bar] => hello ) [1] => SimpleXMLElement Object ( [bar] => world ) ) ) SimpleXMLElement Object ( [bar] => hello ) 明明print_r显示foo是一个有两个bar元素的数组,但是最后却仅仅显示了一个bar元素! 代码如下: foreach ($data->foo as $v) print_r($v);
foreach ($data->children() as $v) print_r($v); 看来,print_r或者var_dump之类的表象并不完全可信,自己多留心吧。 假如我们获取的XML数据如下:(可以使用curl、fsockopen等方式获取) 代码如下: Array;Array;Array; 经过simplexml_load_string得到: 代码如下: SimpleXMLElement Object
( [@attributes] => Array ( [num] => 219 [id] => 219 [name] => 219 ) [key] => 你好 [acceptation] => Array;Array;Array; [1] => SimpleXMLElement Object [2] => SimpleXMLElement Object [3] => SimpleXMLElement Object [4] => SimpleXMLElement Object ) ) 我们在PHP语言中可以用以下方法取得我们想要的值: 代码如下: $data = << Array;Array;Array; XML; $xmldata = simplexml_load_string($data); header("Content-Type: text/html; charset=UTF-8"); print_r($xmldata); echo " ".trim($xmldata->sent[0]->orig); //Haven't seen you for a long time. How are you? echo " ".trim($xmldata->key); //你好 ?> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |