我试图解析一个不起作用的XML响应。在API文档中,它表示它是基于XML的协议:SRU。那么这个XML解析代码不会工作吗?或者代码中是否有错误?
代码:
$xmldoc = new DOMDocument();
$xmldoc->load('http://api.site.com/sru/query=' . $_GET['q']);
print_r($xmldoc);
$xpathvar = new Domxpath($xmldoc);
$queryResult = $xpathvar->query('//datafield[@tag="020"]/subfield[$code="a"]');
foreach ($queryResult as $result) {
echo $result->textContent;
print_r($result);
}
xml结构:
<searchRetrieveResponse>
<numberOfRecords>1</numberOfRecords>
<datafield tag="020" ind1=" " ind2=" ">
<subfield code="a">xyz</subfield>
</datafield>
...
</searchRetrieveResponse>
答案 0 :(得分:0)
$code
(xpathvar->query
)中的美元符号看起来不属于那里。尝试删除或转义美元符号,在您的情况下适当(删除看起来合适,给出示例xml)。