从XML获取整个价值

时间:2013-09-30 02:29:43

标签: php xml simplexml

如何使用simplexml_load_string从XML获取整个结果?

我的XML看起来像这样

<xml>
    <code>
      <codedesc>Code Name</codedesc>
      100
    </code>
    <code>
      <codedesc>Code Name 2</codedesc>
      200
    </code>
</xml>

当我使用此代码加载PHP时

$XML = simplexml_load_string($data);
print_r($XML);

我只能获得codedesc而不是代码编号,你可以在这里看到

https://eval.in/51562

2 个答案:

答案 0 :(得分:2)

您需要将值包装在XML中,以便可以访问它们。

<xml>
   <code>
      <codedesc>Code Name</codedesc>
      <value>100</value>
   </code>
   <code>
      <codedesc>Code Name 2</codedesc>
      <value>200</value>
   </code>
</xml>

然后您可以像这样访问它们:

$xml = simplexml_load_string($data);

echo $xml->code[0]->value;     //100
echo $xml->code[1]->value;     //200
echo $xml->code[1]->codedesc;  //Code Name 2

如果您无法更改xml,则以下内容应该有效:

echo $xml->code[0];            //100
echo $xml->code[1];            //200

答案 1 :(得分:0)

我不确定你正在试图让SimpleXML正确解析你的XML字符串,并返回一个带有一个名为'code'的数组的类,它有两个名为codedesc的对象:

SimpleXMLElement Object
(
    [code] => Array
        (
            [0] => SimpleXMLElement Object
                (
                    [codedesc] => Code Name
                )

            [1] => SimpleXMLElement Object
                (
                    [codedesc] => Code Name 2
                )

        )

)

如果您正在尝试获取值(100,200) - 请尝试将它们放入XML元素中。

如果您尝试打印整个XML,请尝试print_r($XML->asXML())(请参阅this