Разбор XML, полученный из запроса GET - PullRequest
1 голос
/ 31 мая 2011

Как часть школьного проекта, я делаю вызов API школы.

Метод: GET Формат ответа: Xml

Теперь я использую curl для выполнения веб-запроса.

$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);

curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);

$data=curl_exec($ch);

curl_close($ch);

Теперь, как мне разобрать вывод xml, чтобы получить нужные мне данные?

Надеюсь, вопрос ясен

Ответы [ 4 ]

2 голосов
/ 31 мая 2011

Это зависит от точного характера содержимого и, более того, его структуры.

Основы должны использовать DOMDocument (или, альтернативно, simplexml, который яне нравится как API) для анализа документа, а затем использовать обход DOM или XPath для поиска нужного содержимого.

Пример может выглядеть следующим образом:

$dom = new DOMDocument;
$dom->loadXML($data); // data from cURL request

$xpath = new DOMXPath($dom);

$names = $xpath->query('//student/name'); // find all name elements that are direct children of student elements

foreach ($names as $name) {
    echo $name->nodeValue;
}

Точный код, который выпотребность зависит от структуры XML и от того, какой контент вы хотите извлечь из него.

1 голос
/ 31 мая 2011

Взгляните на SimpleXML, DOMDocument, XMLParser и XPath.Я обычно предпочитаю SimpleXML, но столько людей, столько мнений ...

В документации к этим классам PHP вы найдете множество примеров.

1 голос
/ 31 мая 2011

Использование SimpleXML :

$xml = simplexml_load_string($data); 
0 голосов
/ 31 мая 2011

при условии, что $ data содержит xml, вы можете использовать SimpleXML для его анализа

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...