我正在做一个xml响应:
$foo = $client->__doRequest (parameters here)
当我回应$ foo时,我得到了xml,就像我告诉我应该的那样。问题是现在我想从xml中提取一些值。现在我能看到的最简单的方法就是将它转换为php数组然后非常简单,以获得价值并做很多可爱的东西,但我似乎很难做到这一点。看过很多使用simple_load_xml的例子,但我得到的只是'注意:数组转换为字符串'。当我var_dump'$ foo'时,我得到'string'xml''。
我做错了什么?
答案 0 :(得分:0)
根据@ CD001的建议,我坚持使用DOMDocument并最终使用以下代码计算出来:
$dom = new DOMDocument;
$dom->loadXML($xml);
$things = $dom->getElementsByTagName('chocolate');
/** I only had a single result so had to do it this way rather then a loop**/
if($things->length > 0) {
$node = $things->item(0);
$chocolate = $node->nodeValue;
}
else {
// empty result set
}
echo $chocolate;
呸! JSON非常好......
答案 1 :(得分:0)
使用Xpath:
$dom = new DOMDocument;
$dom->loadXML($xml);
$xpath = new DOMXpath($dom);
// get content of the first chocolate element node as a string
$chocolate = $xpath->evaluate('string(//chocolate)');
echo $chocolate;