есть ли какой-либо простой способ получить все атрибуты узла, не проверяя, имеет ли он тот атрибут? короткий, вот пример того, что я пытаюсь сделать: у меня есть этот короткий domdocument:
<p align=center style="font-size: 12px;">some text</p>
<a href="#" target="_blank">some link<a/>
хорошо.. теперь, если я проверю, что тег p с getAttribute ('выравнивается'), то я получу центральное значение.. это прохладно, но я хочу видеть, имеет ли тег p также другой атрибут как стиль, не проверяя на каждый возможный атрибут. на теге img я должен буду проверить на src, ширину, высоту, стиль, onclick, и т.д. проверить, существуют ли они.. но я думаю, что это мог бы быть более легкий способ видеть все атрибуты.
Учитывая, что ваш узел является 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;'
т.е. у нас есть два атрибута узла, без знания их имен до этого; и для каждого атрибута мы можем получить его имя и его значение.
Используйте этот код, он предоставит вам указанные атрибуты.
<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>
Теперь, когда вы щелкаете по содержанию тега p. Он покажет вам выравнивание значений атрибута.