我在php中有这个HTTP Post函数,它将表单发送到竞争web服务,响应是一个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;
?>
由于
答案 0 :(得分:0)
您可以使用PHP DOMDocument库和DOMXpath库在XML上运行xpath查询:
$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)');
答案 1 :(得分:0)
PHP内置了一些选项。试试这个:simplexml_load_string