получить список детей в PHP SimpleXMLElement - PullRequest
2 голосов
/ 08 октября 2009

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

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

1 Ответ

4 голосов
/ 08 октября 2009

Учитывая этот фрагмент 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
...