作为学校项目的一部分,我打电话给学校的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输出以获取我想要的数据?
希望问题清楚
答案 0 :(得分:2)
这取决于内容的确切性质,以及其结构。
基础是使用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 :(得分:1)
使用SimpleXML:
$xml = simplexml_load_string($data);
答案 2 :(得分:1)
查看SimpleXML
,DOMDocument
,XMLParser
和XPath
。我通常更喜欢SimpleXML
,但很多人都喜欢...... {/ p>
你会在这个PHP类的文档中找到很多例子。
答案 3 :(得分:0)
假设$ data包含xml,您可以使用SimpleXML来解析它