使用PHP与.net SOAP服务交互

时间:2012-06-28 14:39:20

标签: php xml api soap

我有一个从我的网站到基于.net的API的工作SOAP请求。出于某种原因,PHP似乎在解析响应时遇到了问题。

当我转储响应时,大多数检索到的数据都在名为“any”的字符串中。此字符串似乎是返回的XML的副本。它太大而无法粘贴到此问题中,但您可以在此处查看回复内容:http://pastie.org/4165973

我已尝试在simplexml中加载此字符串,但我收到错误:“文档末尾的额外内容”。

有没有人遇到过类似的问题?我该如何解析这个回复?

编辑我将__getLastResponse()保存到文件中,以尽可能获得原始输出。新XML在这里http://pastebin.com/3ZtjDbjw

2 个答案:

答案 0 :(得分:1)

XML看起来格格不入。 <ShipToAddress>可能不正确,但它包含CDATA,这可能是打破解析器的原因。

无论如何,通过XML linter(http://xmlsoft.org/xmllint.html)运行它,看看它有什么用。但是,我的猜测是源API要么不正确地吐出来,要么在打印之前对它做一些事情,所以你提供的实际上不是实时输出。

答案 1 :(得分:0)

xml没有格式错误。相反,该问题与命名空间有关。我最终在PHP Parse Soap Reponse Issue - SimpleXMLElementParse XML with Namespace using SimpleXML

的帮助下解决了这个问题