Как я могу получить идентификаторы из импортированных узлов?
Это возможно с оригинальным содержимым XML, но если я импортирую некоторые данные, я не могу получить к ним доступ по идентификатору.
$test = '
<!DOCTYPE html>
<html>
<head/>
<body>
<div id="test"></div>
</body>
</html>';$test2 = '<div id="test2">test</div>';
$dom = new DOMDocument();
$dom2 = new DOMDocument();
$dom->loadHTML($test);
$dom2->loadXML($test2);
$element2 = $dom2->documentElement;
$import = $dom->importNode($element2, true);
$element = $dom->getElementsByTagName('html')->item(0);
$element->appendChild($import);
var_dump($dom->getElementById('test'));
var_dump($dom->getElementById('test2'));
Можно найти тест, но не найти test2, который пришел от импортированного элемента.
Это вывод XML. Импорт работал.
<?xml version="1.0" standalone="yes"?>
<!DOCTYPE html>
<html>
<head></head>
<body>
<div id="test"></div>
</body>
<div id="test2">test</div>
</html>
Решено!
Я должен был добавить это.
<!DOCTYPE html_fragment
<!ATTLIST div id ID #IMPLIED>
]>
Других решений пока нет …