PHP XML转换器响应

时间:2017-08-08 03:37:59

标签: php xml

我在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

谢谢你:)

1 个答案:

答案 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类型的对象,而不是它未加载。