У меня есть HTML-файл, и я пытаюсь использовать DOM, чтобы найти атрибут id
всех <h2>
элементов:
$html = new DOMDocument;
$html->loadHTML($file);
$headings = $html->getElementsByTagName('h2');
Что, как и ожидалось, возвращает DOMNodeList
с числом, равным количеству заголовков в моем документе. Когда я повторяю это и пытаюсь исследовать данные, возвращенные через var_dump
или print_r
, я получаю ошибку (значение объекта опущено) для списка атрибутов:
object(DOMElement)#10 (18) {
["tagName"]=>
string(2) "h2"
["schemaTypeInfo"]=>
NULL
["nodeName"]=>
string(2) "h2"
["nodeValue"]=>
string(10) "What next?"
["nodeType"]=>
int(1)
["parentNode"]=>
string(22) "(object value omitted)"
["childNodes"]=>
string(22) "(object value omitted)"
["firstChild"]=>
string(22) "(object value omitted)"
["lastChild"]=>
string(22) "(object value omitted)"
["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(2) "h2"
["baseURI"]=>
NULL
["textContent"]=>
string(10) "What next?"
}
Почему это так и почему я не могу увидеть количество атрибутов или почему DOMNamedNodeMap
не возвращается, как документация говорит, что так и должно быть?
Я пытался использовать xPath вместо функции getElementsByTagName
, но у меня возникла та же проблема.
Как мне получить атрибуты? Я не вижу способа сделать это?