gpt4 book ai didi

php - 如何从 DOMElement 获取属性

转载 作者:行者123 更新时间:2023-12-05 05:20:31 27 4
gpt4 key购买 nike

我有这个 DOMElement。

我有两个问题:

1) 对象值省略是什么意思?

2) 如何从这个 DOMElement 中获取属性?

 object(DOMElement)#554 (18) {
["tagName"]=>
string(5) "input"
["schemaTypeInfo"]=>
NULL
["nodeName"]=>
string(5) "input"
["nodeValue"]=>
string(0) ""
["nodeType"]=>
int(1)
["parentNode"]=>
string(22) "(object value omitted)"
["childNodes"]=>
string(22) "(object value omitted)"
["firstChild"]=>
NULL
["lastChild"]=>
NULL
["previousSibling"]=>
string(22) "(object value omitted)"
["nextSibling"]=>
string(22) "(object value omitted)"
["attributes"]=>
string(22) "(object value omitted)"
["ownerDocument"]=>
string(22) "(object value omitted)"
["namespaceURI"]=>
NULL
["prefix"]=>
string(0) ""
["localName"]=>
string(5) "input"
["baseURI"]=>
NULL
["textContent"]=>
string(0) ""
}

我已经让这个类来访问对象。这样做的目的是让我可以从输入字段中获取类型属性。

<?php

namespace App\Model;

class Field
{
/**
* @var \DOMElement
*/
protected $node;

public function __construct($node){
$this->node = $node;
}

public function getNode(){
return $this->node;
}

public function getTagName(){

foreach ($this->node as $value) {
return $value->tagName;
}
}

public function getAttribute(){


}
}

最佳答案

  1. 我相信 (object value omitted) 只是一些内部 DOMvar_dump() 限制,以防止转储太深和/或转储有关对象图的递归信息。

  2. 然后,关于获取有关属性的信息:

    • 获取 DOMElement所有属性,您将使用 attributes属性,在其父类上定义DOMNode并返回 DOMNamedNodeMapDOMAttr节点:

      // $this->node must be a DOMElement, otherwise $attributes will be NULL
      $attributes = $this->node->attributes;

      // then, to loop through all attributes:
      foreach( $attributes as $attribute ) {
      // do something with $attribute (which will be a DOMAttr instance)
      }
      // or, perhaps like so:
      for( $i = 0; $i < $attributes->length; $i++ ) {
      $attribute = $attributes->item( $i );
      // do something with $attribute (which will be a DOMAttr instance)
      }

      // to get a single attribute from the map:
      $typeAttribute = $attributes->getNamedItem( 'type' );
      // (which will be a DOMAttr instance or NULL if it doesn't exist)
    • 要从 DOMElement 中获取一个名为 type 的属性,您可以使用:

      • DOMElement::getAttributeNode() , 获取表示 type 属性的 DOMAttr 节点,如下所示:

        $typeAttr = $this->node->getAttributeNode( 'type' );
        // (which will be NULL if it doesn't exist)

      • DOMElement::getAttribute() , 获取属性 type 的字符串值,如下所示:

        $typeAttrValue = $this->node->getAttribute( 'type' );
        // (which will an empty string if it doesn't exist)

关于php - 如何从 DOMElement 获取属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44518929/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com