Я читаю XML-код с PHP и в настоящее время использую класс DOMDocument
для этого. Мне нужен способ захватить имена и значения атрибутов тега (экземпляр DOMElement
), не зная заранее, что это такое. документация, похоже, не предлагает ничего подобного. Я знаю, что могу получить значение атрибута, если у меня есть его имя, но опять же, я не знаю ни одного из них, и мне нужно найти оба.
Я также знаю, что другие классы, такие как SimpleXMLElement
, обладают этой возможностью, но меня интересует, как это можно сделать с помощью DOMDocument
.
Ответ 1
Вы можете получить все атрибуты данного DomNode, используя свойство DomNode- > attributes, оно вернет вам DOMNamedNodeMap, содержащий имена и значения атрибутов.
foreach ($node->attributes as $attrName => $attrNode) {
// ...
}
Ответ 2
Если вы хотите получить имя атрибута и значения атрибута (а не атрибутыNodes), вам нужно вызвать свойство $attrNode- > nodeValue объекта DOMNode.
$attributes = array();
foreach($element->attributes as $attribute_name => $attribute_node)
{
/** @var DOMNode $attribute_node */
$attributes[$attribute_name] = $attribute_node->nodeValue;
}