Как получить определенный тег в DOMDocument в PHP?
У меня есть переменные документы, которые мне нужно изменить на лету. Например, у меня может быть документ следующего содержания:
<!--?xml version="1.0"?-->
<item>
<tag1></tag1>
</item>
<tag2>
<item></item>
<item></item>
</tag2>
Это очень упрощенный, но у меня есть теги с одинаковым именем на разных уровнях. Я хочу получить теги элементов в 'tag2'. Фактические теги в файлах, которые мне даны, имеют уникальные идентификаторы для их различения, а также некоторые другие атрибуты. Мне нужно найти тег, прокомментировать его и сохранить xml. Мне удалось получить DOMDocument для возврата узла " tag2, но я не уверен, как получить доступ к тегам элементов в этой структуре.
3 ответов
Это такая проблема, что PHP DOMDocument
класс выделяется на. Сначала загрузите строку XML с помощью loadHTML()
метод, а затем используйте выражение XPath для обхода дерева DOM:
$dom = new DOMDocument;
libxml_use_internal_errors(true);
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$item_tags = $xpath->query('//tag2/item');
foreach ($item_tags as $tag) {
echo $tag->tagName, PHP_EOL; // example
}
<?php
$tag= new DOMDocument();
$tag->loadHTML($string);
foreach ($tag->getElementsByTagName("tag") as $element)
{
echo $tag->saveXML($element);
}
?>
может быть поможет вам .попробуйте!--2-->