使用SimpleXML对XML的SOAP响应

时间:2010-05-05 13:16:29

标签: php xml soap simplexml

我正在尝试将SOAP响应转换为XML。

SOAP有一个信封和一个正文

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>

当我尝试转换

$responseXML = simplexml_load_string($string);

我得到了

object(SimpleXMLElement)#20 (0) { } 

如果我将$string编辑为soap:Envelopesoap:Body,我可以获取XML。

:出了什么问题?无法获得XML。

我希望它很清楚。任何人吗?

2 个答案:

答案 0 :(得分:9)

SOAP消息 已经是XML。问题是它有名称空间,所以你必须以不同的方式访问它。 (冒号前面的部分是命名空间的标识符。)

Here (google cached copy)是使用SimpleXML命名空间的示例 Here是读取SOAP消息的一个具体示例。

答案 1 :(得分:1)

SimpleXML需要对命名空间XML(ref.

进行特殊处理