从 XML 获取整个值


Getting an entire value from XML

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

我只得到代码描述,而不是你在这里看到的代码编号

https://eval.in/51562

您需要将

值包装在 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

我不确定您要获取什么 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())(请参阅此处)