有没有简单的方法来获取节点的所有属性而不检查它是否具有该属性?简而言之,这是我正在尝试做的一个例子:我有这个简短的domdocument:
<p align=center style="font-size: 12px;">some text</p>
<a href="#" target="_blank">some link<a/>
好吧..现在,如果我用getAttribute('align')检查p标签,我将得到中心值..这很酷,但我想看看p标签是否还有另一个属性,如样式而不检查每个可能的属性.在img标签上我将检查src,宽度,高度,样式,onclick等等.以验证它们是否存在..但我认为它可能是一种更容易看到所有属性的方法.
Pas*_*TIN 66
考虑到您将节点作为DOMElement或DOMNode,您可以使用该类的$ attributes属性DOMNode:它包含该节点具有的属性列表.
使用属性,你可以遍历所有的属性,得到了名字,每个人的价值,他们$nodeName和$nodeValue性能.
例如,在您的情况下,您可以使用以下内容:
$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 />";
  }
}
哪个会得到这种输出:
Attribute 'align' :: 'center'
Attribute 'style' :: 'font-size: 12px;'
即我们有节点的两个属性,之前不知道它们的名字; 对于每个属性,我们可以获取其名称及其值.
Pav*_*mar -7
使用此代码,它将为您提供指定的属性。
 
<html>
<脚本>
功能测试()
{
getvalue=document.getElementById("iid").getAttribute("align")
警报(获取值);
}
</脚本>
<正文>
<p id=iidalign="center"background="red"onclick="test();" >
这是为了测试
php dom获取节点的所有属性
</p>
</正文>
</html>
 
现在,当您单击 p 标签的内容时。它将向您显示对齐属性值。