Как проанализировать XML, чтобы получить один тег и сохранить другой тег внутри

#php #xml #dom

#php #xml #dom

Вопрос:

Я использую расширение DOM PHP5.3 для анализа некоторого xml-документа с тегом <title>, подобным этому:

<заголовок> некоторый текст <слово> ключевоеслово</word> некоторый текст</title>

Я хочу получить результат из тега <title> с определенными тегами внутри него (я хочу знать ключевые слова, поэтому я хочу сохранить тег <word> внутри тега <title>). Результат в этом случае должен быть примерно таким:

некоторый текст [word] ключевое слово[ / word] некоторый текст

Я делаю некоторый код:

$title=$doc->getElementsByTagName('title')->item(0)->nodeValue;

$title должен содержать некоторый результат. Но я получаю только текст без каких-либо тегов внутри него, и теперь я не знаю, где находятся ключевые слова.

ключевое слово some text, some text

Я не знаю, как сохранить тег <word>! Как я мог бы получить результат, подобный некоторому текстовому ключевому слову [word][ / word] some text из расширения DOM?

Спасибо за помощь.

Комментарии:

1. Вы просматриваете $title через браузер? помните, что ваш браузер попытается отобразить теги и пропустить неизвестные. Попробуйте сделать echo htmlentities($title) принудительное отображение тегов как есть.

Ответ №1:

Если вы хотите все сами теги, всегда есть saveXML :

http://us3.php.net/manual/en/domdocument.savexml.php

Вы передаете нужный узел, и он возвращает вам строку, хотя <title> начальный и конечный теги будут включены. Также он будет включать атрибуты.

Комментарии:

1. $parse_xml-> saveXML($doc->getElementsByTagName(‘title’)->item(0));