Дочерние узлы PHP

Итак, я пытаюсь выполнить итерацию документа DOM, который будет выглядеть так:

<track rank="1">
    <name>Believe</name>
    <duration>239</duration>
    <mbid>13194c93-89c6-4ab4-aaf2-15db5d73b74e</mbid>
    <url>http://www.last.fm/music/Cher/_/Believe</url>
    <streamable fulltrack="0">0</streamable>
    <artist>
        <name>Cher</name>
        <mbid>bfcc6d75-a6a5-4bc6-8282-47aec8531818</mbid>
        <url>http://www.last.fm/music/Cher</url>
    </artist>
</track>

Используя PHP, я могу просто сделать $tracks = $xml->getElementsByTagName("track"); И дело в том, что для каждого трека я хочу получить как его имя, так и продолжительность. Я знаю о свойстве childNodes, но я не хочу зацикливать их все. Есть ли способ получить к ним прямой доступ без использования foreach для своих детей?


person André Silva    schedule 14.10.2014    source источник
comment
Рассматривали ли вы SimpleXML для этого? Это было бы так просто, как $track_names = $xml-xpath('//track/name'); $durations = $xml->xpath('//track/duration');   -  person Mike Brant    schedule 14.10.2014
comment
Это не работает, так как я создаю новый SimpleXMLElement. И для каждого существующего трека мне нужно знать их значения, поэтому я думаю, что ваш способ мне не подходит.   -  person André Silva    schedule 14.10.2014
comment
Где проблема в создании нового SimpleXMLElement из двух массивов?   -  person andy    schedule 15.10.2014