代码之家  ›  专栏  ›  技术社区  ›  Josh Leitzel

有没有办法获得domElement的所有属性?

  •  10
  • Josh Leitzel  · 技术社区  · 16 年前

    我正在用PHP阅读一些XML,目前正在使用 DOMDocument 要这样做的类。我需要一种方法来获取标记的名称和值(例如 DOMElement )属性,而不事先知道它们是什么。这个 documentation 似乎没有提供这样的服务。我知道如果我有一个属性的名称,我就可以得到它的值,但同样,我也不知道其中任何一个,需要同时找到这两个属性。

    我也知道其他的课程 SimpleXMLElement 有这种能力,但我对如何做到这一点很感兴趣 多面体文件 .

    2 回复  |  直到 9 年前
        1
  •  16
  •   Christian C. Salvadó    16 年前

    您可以使用 DomNode->attributes 属性,它将返回您 DOMNamedNodeMap 包含属性名称和值。

    foreach ($node->attributes as $attrName => $attrNode) {
        // ...
    }
    
        2
  •  24
  •   Jan Molak michaeltwofish    15 年前

    如果要获取属性名称和属性值(而不是attributeNode),则必须调用domNode对象的$attrnode->nodeValue属性。

    $attributes = array();
    
    foreach($element->attributes as $attribute_name => $attribute_node)
    {
      /** @var  DOMNode    $attribute_node */
      $attributes[$attribute_name] = $attribute_node->nodeValue;
    }
    
    推荐文章