получить тэг в xml используя php - PullRequest
4 голосов
/ 12 мая 2011

Вот мой xml:

<news_item>    
    <title>TITLE</title>
    <content>COTENT.</content>
    <date>DATE</date>
<news_item>

Я хочу получить имена тегов внутри news_item.

Вот что у меня есть:

$dom = new DOMDocument();
$dom->load($file_name);
$results = $dom->getElementsByTagName('news_item');

БЕЗ ИСПОЛЬЗОВАНИЯ других библиотек php, таких как simpleXML , могу ли я получить имена всех имен тегов (не значений) дочерних тегов?

Пример решения

title, content, date

Я не знаю названия тегов внутри news_item, только имя тега контейнера 'news_item'

Спасибо, ребята!

Ответы [ 3 ]

11 голосов
/ 12 мая 2011

Попробуйте:

foreach($results as $node)
{
    if($node->childNodes->length)
    {
        foreach($node->childNodes as $child)
        {
            echo $child->nodeName,', ';
        }
    }
}

Должно работать.В настоящее время используется нечто подобное, хотя для html, а не для xml.

1 голос
/ 12 мая 2011
$nodelist = $results->getElementsByTagName('*');
for( $i=0; $i < $nodelist->length; $i++)
    echo $nodelist->item($i)->nodeName;
0 голосов
/ 12 мая 2011

[Предыдущий неверный ответ отредактирован]

Для чего бы это ни стоило, использование simplexml_import_dom () для создания элемента SimpleXMLE из элемента DOME не требует затрат. Оба являются просто объектными интерфейсами в базовой структуре данных libxml2. Вы даже можете внести изменения в элемент DOME и увидеть его в простом элементе SimpleXMLE, или наоборот. Так что это не обязательно должен быть выбор. / 1003 *

...