读取XML API响应中的注释

时间:2014-05-22 01:23:37

标签: php xml api xpath

我从XML api得到以下响应,我想显示放在评论部分的文本。

<OTA_AirDetailsRS PrimaryLangID="eng" Version="1.0" TransactionIdentifier=""><Errors><Error Type="ERR" FLSErrorCode="-10" FLSErrorName="Invalid Input"/></Errors><!-- Reason for error: The Date parameter is not valid [2014-05-16] --></OTA_AirDetailsRS>

我用过这个: ...

$query = curl_exec($curl_handle);
curl_close($curl_handle);
$xml = new SimpleXmlElement($query);

if($xml->Errors){
$doc = new DOMDocument;
$doc->loadXML($xml);
$xpath = new DOMXPath($doc);
foreach ($xpath->query('//comment()') as $comment)
{
    var_dump($comment->textContent);
}

在这种情况下它没有显示任何内容,但是如果不是传递xml响应,我会以字符串格式传递一个简单的xml,它正在工作。如果出现问题,请提出建议。

1 个答案:

答案 0 :(得分:0)

您需要加载XML,而不是SimpleXmlElement调用中的对象:

$doc = new DOMDocument;
$doc->loadXML($query);

然后你的脚本输出:

  

string(64)&#34;错误原因:Date参数无效[2014-05-16]&#34;