前言:在发布此问题之前,我仔细搜索并仔细阅读。我看到了一些类似于我的问题,有些问题甚至有相同的错误信息,但大多数都有简单的答案,例如"需要一个根元素。"我一直无法在这里应用这些解决方案,因此我发布了。
我使用PHP和cURL来使用.NET Web服务,其中我以XML格式发送数据,并以XML格式接收响应。它工作正常,我已经验证了.NET服务端的良好写入。当我使用时:
$xml_obj = simplexml_load_string($result);
print $xml_obj->asXML()
响应XML返回到浏览器:
我正在尝试解析该XML,以便我可以对潜在错误和/或成功响应做一些有意义的事情。我正在尝试使用这种方法:
$xml = new SimpleXMLElement($xml_obj);
$is = $xml->xpath('*/i');
foreach($is as $i) {
echo $i['title'], ': ', $i['description'], "\n";
}
这可能是也可能不是最佳方法。当我执行此操作时,我收到此消息:
我不清楚问题是否在响应XML中(错误消息似乎表明,但我无法找到),或者我是否尝试以错误的方式解析XML。
感谢您的帮助。
答案 0 :(得分:0)
您不能将纯文本输出与XML输出混合。你需要使用其中一个。
纯文本输出:
foreach($is as $i) {
echo $i['title'], ': ', $i['description'], "\n";
}
查看结果页面的来源,您将清楚地看到格式错误的(纯文本)响应。
如果您正在输出XML,我希望更像是:
foreach($is as $i) {
echo '<title>', $i['title'], '</title><description>', $i['description'], '</description>';
}