PHP SimpleXML解析具有多个属性的元素

Posted

技术标签:

【中文标题】PHP SimpleXML解析具有多个属性的元素【英文标题】:PHP SimpleXML Parsing elements with multiple attributes 【发布时间】:2015-12-23 14:17:40 【问题描述】:

我必须从通过 php 返回 XML 的 Web 服务解析数据。我在获取数据方面没有问题,但在访问特定属性时遇到了问题。当我 var_dump 时,我正在解析的 xml 看起来像这样。

object(SimpleXMLElement)#13 (2)  ["@attributes"]=> array(1)  ["Label"]=> string(4) "11am"  ["Value"]=> object(SimpleXMLElement)#14 (1)  ["@attributes"]=> array(1)  ["Y"]=> string(6) "204.68"   

为了获取该元素,我正在遍历 xml,每个元素都是这样的

foreach($details as $key)
    foreach($key as $value)
        var_dump($value);           
    

要访问元素的标签部分,我可以回显 $value['Label'] 但我无法访问 Y 元素。任何帮助将不胜感激!

【问题讨论】:

【参考方案1】:

Y 属性位于 Value 元素上,该元素是当前节点下的子节点。这意味着$value 上有一个单独的SimpleXMLElement 对象。您可以像这样在 foreach 循环中访问它们:

foreach($details as $key)
  foreach($key as $value)
    $label = $value['Label'];
    $y = $value->Value['Y'];
  

【讨论】:

以上是关于PHP SimpleXML解析具有多个属性的元素的主要内容,如果未能解决你的问题,请参考以下文章

在 SimpleXML for PHP 中删除具有特定属性的子项

simpleXML技术解析xml文件(php)

PHP 5 SimpleXML 函数

SimpleXML:选择具有特定属性值的元素

PHP 5 SimpleXML 函数

PHP SIMPLEXML XPATH 匹配具有相同子字符串的多个标签