Получение тегов и содержимого XML-документа с помощью парсера DOM в PHP

Рассмотрим такой XML-файл:

<title>sometitle</title>
<a>
    <abc>content1</abc>
    <xyz>content2</sxyz>
    <metadata>
        <b>
            <c>content3</c>
            <d><attribute></d>
        </b>
    </metadata>
</a>

Я использую этот код для анализа файла и получаю такой результат:

title: abc

a: content1 content2 content 3

то есть он анализирует только теги первого уровня и не может проанализировать вложенные теги и получить значение, любая помощь очень ценится, так как я полный новичок в этом. Пока это то, что я пробовал:

$xmlDoc = new DOMDocument();

$xmlDoc->load("somedoc.xml");

$x = $xmlDoc->documentElement;

foreach($x->childNodes AS $item) 
{
    print $item->nodeName . " = " . $item->nodeValue . "<br>";
}

person apoo    schedule 21.03.2015    source источник
comment
В цикле foreach вы можете проверить, есть ли у $ item дочерние узлы.   -  person Antony    schedule 21.03.2015
comment
Большое спасибо, Энтони, который дал мне так много подсказок с тех пор, как я учился, я выполнил внутренний цикл for, но что, если в дочерних узлах есть дочерние элементы, как я могу динамически узнать, сколько циклов foreach нужно запустить?   -  person apoo    schedule 21.03.2015


Ответы (1)


Ознакомьтесь с приведенной ниже ссылкой на php-документацию по функциям haschildnodes ().

Вы можете увидеть образцы на странице ниже для использования.

http://php.net/manual/en/domnode.haschildnodes.php

person Antony    schedule 21.03.2015
comment
Это сработало как шарм, спасибо большое, Антоний :) Ссылка помогла мне узнать намного больше! - person apoo; 21.03.2015