0

如何使用 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

4

2 回答 2

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
于 2013-09-30T02:37:53.153 回答
0

我不确定你试图让 SimpleXML 正确解析你的 XML 字符串,并返回一个带有一个名为“code”的数组的类,它有 2 个名为 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())(请参阅

于 2013-09-30T02:40:36.167 回答