0

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

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

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

有没有人遇到过类似的问题?如何解析此响应?

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

4

2 回答 2

1

XML 看起来格式不正确。 <ShipToAddress>可能是不正确的,但它包含可能是破坏解析器的 CDATA。

在任何情况下,通过 XML linter (http://xmlsoft.org/xmllint.html) 运行它,看看它要说什么。但是,我的猜测是源 API 要么错误地将其吐出,要么您在将其打印出来之前对其进行了处理,因此您提供的实际上并不是实时输出。

于 2012-06-28T15:01:07.727 回答
0

xml 格式不正确。相反,这个问题与命名空间有关。我最终在PHP Parse Soap Reponse Issue - SimpleXMLElement and Parse XML with Namespace using SimpleXML的帮助下解决了这个问题

于 2012-06-29T15:10:47.137 回答