PHP DOM XML желательно читать с xPath - PullRequest
0 голосов
/ 30 ноября 2011

У меня есть этот xml

<App>
<Id id="129"/>
<Path id="category/self"/>
<Screenshots>
    <Screenshot url="small_480x320_34eaefb6c934a0d82da637bec2276bdd_ebecfca09179d055ed4d3cf15a41bf7c-8f95512356608b888f288b374db7b37fabb3ce27.jpg"/>
    <Screenshot url="small_480x320_438a9e1352bda4ef9724ae422473a556_615625ab835b09aa712e9c84c056cd7a-15bc8803724197129aea59577cac334736fadd3f.jpg"/>
    <Screenshot url="small_480x320_ce4d635a786e427983c30f1abd8617a1_4d9b74b7f8ffa9ca19d64bee4a9592b9-36a9e665b0546b09e5496a5d02ba5e1bcd0bf563.jpg"/>
    <Screenshot url="small_480x320_3e95d91de62aa2c52e4ff7f32a10a1d9_8a39c9eb9fa2bc2d5f5e789705713e12-a5ec1865bc88c6569af106d9131b45f1f82f8a1b.jpg"/>
    <Screenshot url="small_480x320_3776b5fc7eceed4da9256105889578a3_4265bb97bda45a213357341ddaa81ce9-dae64333deb2cc09f69d0e74e79f4def199caaa2.jpg"/>
</Screenshots>
</App>

и я хочу разобрать его и получить

$Id = "129";
$Path = "category/self";
$Screenshots = array(... screenshots ... all 5 of them);

Теперь ... у меня нет проблем, например, с XSLT, но я не до конца понимаю DOM после прочтения документации. Все, что у меня есть, это

это xpath http://codepad.org/BtvNEnjl, который просто читает значение между тегами, и я не знаю, как сделать так, чтобы оно "foreach" его ...

1 Ответ

3 голосов
/ 30 ноября 2011
$xml = simplexml_load_string($str); // or use simplexml_load_file()

$id = (string) $xml->Id['id'];
$path = (string) $xml->Path['id'];

$screenshots = array();
foreach($xml->xpath('/App/Screenshots/Screenshot') as $screenshot)
{
    $screenshots[] = (string) $screenshot['url'];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...