php dom get all attributes of a node

前端 未结 2 794
长发绾君心
长发绾君心 2020-12-14 06:19

is there any easy way of getting all attributes of a node without checking if it has that attribute? short, here\'s an example of what i\'m trying to do: i have this short d

相关标签:
2条回答
  • 2020-12-14 06:33

    Considering you have your node as a DOMElement or DOMNode, you can use the $attributes property of the DOMNode class : it contains a list of the attributes that the node has.

    Using that property, you can loop over the attributes, getting the name and value of each one, with their $nodeName and $nodeValue properties.


    For instance, in your case, you could use something like this :

    $str = <<<STR
    <p align=center style="font-size: 12px;">some text</p>
    <a href="#" target="_blank">some link<a/>
    STR;
    
    $dom = new DOMDocument();
    $dom->loadHTML($str);
    
    $p = $dom->getElementsByTagName('p')->item(0);
    if ($p->hasAttributes()) {
      foreach ($p->attributes as $attr) {
        $name = $attr->nodeName;
        $value = $attr->nodeValue;
        echo "Attribute '$name' :: '$value'<br />";
      }
    }
    


    Which would get you this kind of output :

    Attribute 'align' :: 'center'
    Attribute 'style' :: 'font-size: 12px;'
    

    i.e. we have the two attributes of the node, without knowing their names before ; and for each attribute, we can obtain its name and its value.

    0 讨论(0)
  • 2020-12-14 06:47

    Use this code, it will give you the specified attributes.

     
    
    <html>
    <script>
    function test()
    {
    getvalue=document.getElementById("iid").getAttribute("align")
    alert ( getvalue) ;
    }
    </script>
    
    <body>
    <p id=iid align="center" background="red" onclick="test();" >
    This is for testing
    php dom get all attributes of a node
    </p>
    </body>
    </html>
    

    Now when you click the conent of the p tag . It will show you align attirbute values.

    0 讨论(0)
提交回复
热议问题