从PHP中的XML字符串中获取值

时间:2014-12-14 14:44:07

标签: php xml simplexml

我有这个XML文件,我需要从中提取USER_NAME和USER_ID以及IP的值。我使用:

将XML加载到SimpleXML中
$xmlObj=new SimpleXMLElement($xmlstring);

但我现在不知道该怎么做..

<?xml version="1.0" encoding="UTF-8"?>
<content>
   <response>
      <state>
         <code>1</code>
      </state>
        <userinformationlist>
           <userinformation>
              <attribute key="USER_NAME">Charles</attribute>
              <attribute key="USER_ID">88477299101</attribute>
              <attribute key="IP">127.0.0.1</attribute>
              <attribute key="CCR_UUID" />
           </userinformation>
        </userinformationlist>
     </response>
</content>

1 个答案:

答案 0 :(得分:1)

这是一个使用DOM扩展名的示例,尤其是DOMXPath,而不是SimpleXML,因为我发现SimpleXML总体上不合适。

实施例

$dom = new DOMDocument();
$dom->loadXML($xmlstring);
$xpath = new DOMXPath($dom);

$name = $xpath->evaluate('string(//attribute[@key="USER_NAME"])');
$id   = $xpath->evaluate('string(//attribute[@key="USER_ID"])');
$ip   = $xpath->evaluate('string(//attribute[@key="IP"])');
echo "$name\t$id\t$ip\n";

输出:

Charles 88477299101 127.0.0.1