解析从GET请求收到的XML

时间:2011-05-31 12:43:41

标签: php xml dom curl

作为学校项目的一部分,我打电话给学校的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 个答案:

答案 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)

查看SimpleXMLDOMDocumentXMLParserXPath。我通常更喜欢SimpleXML,但很多人都喜欢...... {/ p>

你会在这个PHP类的文档中找到很多例子。

答案 3 :(得分:0)

假设$ data包含xml,您可以使用SimpleXML来解析它