Разбор XML-фида в PHP - PullRequest
       10

Разбор XML-фида в PHP

2 голосов
/ 25 января 2012
<?php

$url='http://bart.gov/dev/eta/bart_eta.xml';

$c = curl_init($url);

curl_setopt($c, CURLOPT_MUTE, 1);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);

$rawXML = curl_exec($c);

curl_close($c);

$fixedupXML = htmlspecialchars($rawXML);

foreach($fixedupXML->eta-> as $eta) {
  echo $eta->destination;
}

?>

Чтобы познакомиться с PHP, я решил проанализировать XML-канал BART и отобразить его на своей веб-странице.Мне удалось (также через этот сайт) получить данные и сохранить теги XML.Однако, когда я пытаюсь вывести данные XML, используя, как мне показалось, самый простой метод, ничего не происходит.

foreach($fixedupXML->eta as $eta){
  echo $eta->destination;
}

Не получаю ли я вложенные элементы прямо в цикле foreach?

Вот канал BART XML http://www.bart.gov/dev/eta/bart_eta.xml Спасибо!

1 Ответ

7 голосов
/ 25 января 2012

Возможно, вы захотите взглянуть на simplexml , который является фантастическим и действительно простым способом работы с XML. Вот отличный пример:

$xml = simplexml_load_file('http://bart.gov/dev/eta/bart_eta.xml');

Затем вы можете запустить print_r на $xml, чтобы увидеть его содержимое:

print_r($xml);

И оттуда вы сможете работать с ним:)

Если вам по какой-то причине все еще нужно использовать curl для получения данных канала, вы можете передать XML в simplexml следующим образом:

$xml = simplexml_load_string($rawXML);
...