麻烦转换xml到PHP中可用的东西

时间:2014-04-03 12:08:56

标签: php xml simplexml soap-client

我正在做一个xml响应:

$foo = $client->__doRequest (parameters here)

当我回应$ foo时,我得到了xml,就像我告诉我应该的那样。问题是现在我想从xml中提取一些值。现在我能看到的最简单的方法就是将它转换为php数组然后非常简单,以获得价值并做很多可爱的东西,但我似乎很难做到这一点。看过很多使用simple_load_xml的例子,但我得到的只是'注意:数组转换为字符串'。当我var_dump'$ foo'时,我得到'string'xml''。

我做错了什么?

2 个答案:

答案 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;