我在XML
上非常新,我目前正在使用PHP工作,我向其他服务器请求了一个正常的请求,并始终使用XML
返回回调
在任何情况下,我都不会谈论如何获得回复,但如何转换XML
响应。
它们是XML
响应的两种类型,我们可以将其称为$response
首先:
<BASEELEMENT SCHEMA="RESULT" METHOD="ADD-MBX">
<RETURN_VALUE>4</RETURN_VALUE>
<ERROR_DESCRIPTION>
<![CDATA[Error (7004): Login name already exists. Please use another login name.]]>
</ERROR_DESCRIPTION>
</BASEELEMENT>
和第二一个是:
<baseelement schema="TIMEOUT" method="ADD-MBX"></baseelement>
我已经搜索了,我得到了如何将xml响应转换为obejct或数组,这是
$response = new \SimpleXMLElement($response);
转换后:
object(SimpleXMLElement)#256 (3) {
["@attributes"]=>
array(2) {
["SCHEMA"]=>
string(6) "RESULT"
["METHOD"]=>
string(7) "ADD-MBX"
}
["RETURN_VALUE"]=>
string(1) "4"
["ERROR_DESCRIPTION"]=>
object(SimpleXMLElement)#257 (0) {
}
}
我们可以看到ERROR_DESCRIPTION
成为0
。
所以我想问一下,是否有xml converter
其他simplexml_load_string()
或new \SimpleXMLElement()
我无法使用该功能,因为我无法获得ERROR_DESCRIPTION
答案 0 :(得分:0)
按原样加载 -
$response = new \SimpleXMLElement($response);
您可以非常简单地获取值...
echo (string)($response->ERROR_DESCRIPTION).PHP_EOL;
如果您想要完整内容(如XML版本)......
echo $response->ERROR_DESCRIPTION->asXML().PHP_EOL;
使用XPath,您可以通过...
获取值echo (string)$response->xpath("//ERROR_DESCRIPTION")[0].PHP_EOL;
您看到的输出显示ERROR_DESCRIPTION是SimpleXMLElement类型的对象,而不是它未加载。