Разобрать ответ XML из HTTP POST с PHP? - PullRequest
1 голос
/ 16 марта 2012

У меня есть функция HTTP Post в php, которая отправляет форму в веб-сервис соревнования, ответ представляет собой XML, который дает дополнительную информацию, если запись была успешной или нет, как я могу проанализировать результаты, чтобы захватить поле состояния и дать дальнейшая обратная связь с пользователем?

Вот код, используемый:

<?php
$url = "...webserviceurl...";
$body = "userName=".$_POST["username"]."&password=".........;
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/x-www-form-      urlencoded")); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $body); 
//curl_setopt($ch, CURLOPT_POST, 1);  
$result = curl_exec ($ch); 
curl_close ($ch); 
print $result;
?>

Спасибо

Ответы [ 2 ]

0 голосов
/ 16 марта 2012

В PHP есть несколько опций.Попробуйте это: simplexml_load_string

0 голосов
/ 16 марта 2012

Вы можете использовать библиотеку PHP DOMDocument и библиотеки DOMXpath для выполнения запросов xpath к XML:

$dom = new DOMDocument();
$dom->loadXML($result);

$xpath = new DOMXpath($dom);
echo $xpath->evaluate('string(//Error)'); // echo contents of <Error> ... </Error> node

Если в ответе есть необычное пространство имен XML (как это делают некоторые API), вынеобходимо зарегистрировать пространство имен и добавить к нему все запросы.

$xpath->registerNamespace('ns', 'https://namespace.org/namespace');
echo $xpath->evaluate('string(//ns:Error)');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...