получить список потомков в SimpleXMLElement PHP

как мне получить список дочерних элементов в xml-> request-> ABC ABC может иметь DEF, ZZA, XAS, ETC, и я хотел бы перебирать список этих дочерних элементов (требуется имя) вместо проверки их существования.

-edit- Примечание: я ищу имя элемента. Я нашел пример, который возвращает атрибут, если он известен. Как мне получить имя тега / элемента?


person An employee    schedule 07.10.2009    source источник
comment
Пожалуйста, опубликуйте XML, который загружен в SimpleXMLElement   -  person eveliotc    schedule 08.10.2009


Ответы (1)


Учитывая этот фрагмент XML и код для его загрузки с помощью SimpleXML:

$str = <<<XML
<xml>
    <request>
        <ABC>
            <DEF>glop</DEF>
            <ZZA>test</ZZA>
        </ABC>
    </request>
</xml>
XML;
$xml = simplexml_load_string($str);

Как насчет использования метода children(), чтобы получить список всех дочерних элементов вашего элемента ABC и перебрать их с помощью foreach?

Так, например:

foreach ($xml->request->ABC->children() as $a => $b) {
    echo "$a $b<br />";
}

И вы получите такой вывод:

DEF glop
ZZA test
person Pascal MARTIN    schedule 07.10.2009