Php 解析从cURL返回的XML,并在将cURL\u exec对象解析为SimpleXMLElement时遇到问题
我似乎从这个cURL返回了一个格式良好的XML文档,但我似乎无法使用SimpleXMLElement类解析这个返回。这是我现在正在使用的代码的迭代:Php 解析从cURL返回的XML,并在将cURL\u exec对象解析为SimpleXMLElement时遇到问题,php,rest,curl,xml-parsing,simplexml,Php,Rest,Curl,Xml Parsing,Simplexml,我似乎从这个cURL返回了一个格式良好的XML文档,但我似乎无法使用SimpleXMLElement类解析这个返回。这是我现在正在使用的代码的迭代: $url = "http://rosemary.umw.edu/~stephen/cpsc448/numCredits.php?prefix=". $prefix ."&number=" . $number; // prefix=cpsc&number=220 $ch = curl_init(); curl_setopt ($ch,
$url = "http://rosemary.umw.edu/~stephen/cpsc448/numCredits.php?prefix=". $prefix ."&number=" . $number; // prefix=cpsc&number=220
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 15);
$resp = curl_exec($ch);
echo $resp;
这将返回:
<?xml version="1.0"?><NumCredits>4</NumCredits>
用这个我没有得到回应。我也尝试过这种方法,但没有成功:
$dom = new DOMDocument;
$dom->loadXML($resp);
if (!$dom) {
echo 'Error parsing document';
exit;
}
$simpleXML = simplexml_import_dom($dom);
echo $simpleXML;
return $simpleXML->NumCredits[0];
我在这里一定是做错了什么,但我不太明白为什么解析此返回值如此困难。您的XML中只有一个元素,因此它被视为文档根:
$xml_string = '<?xml version="1.0"?><NumCredits>4</NumCredits>';
$xml = new SimpleXmlElement($xml_string);
print_r($xml);
因此,它可以作为$xml[0]访问代码>
如果希望能够通过元素名称访问它,则需要向XML中添加根元素,例如:
<?xml version="1.0"?>
<root>
<NumCredits>4</NumCredits>
</root>
4.
解析此文档后,您可以使用$xml->NumCredits代码>哇,我真的应该弄明白,谢谢你减轻了我的沮丧!
SimpleXMLElement Object
(
[0] => 4
)
<?xml version="1.0"?>
<root>
<NumCredits>4</NumCredits>
</root>