2012-10-27 23 views
2

我似乎从该cURL中找回了格式良好的XML文档,但似乎无法使用SimpleXMLElement类解析此返回。这是代码,我与现在的工作迭代:解析从cURL返回的XML,并将解析curl_exec对象的问题解析为SimpleXMLElement

$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> 

这是我当前如何试图解析返回:

$xml = new SimpleXMLElement($resp); 
echo $xml->NumCredits[0]; 

使用此我没有得到回应。我也试过这个方法没有成功:

​​

我要在这里做一些错误,但我不能完全弄清楚它为什么这么难解析这个回报。

回答

3

你只有一个元素在你的XML,所以它被认为是文档根:

$xml_string = '<?xml version="1.0"?><NumCredits>4</NumCredits>'; 
$xml = new SimpleXmlElement($xml_string); 
print_r($xml); 

将输出:

SimpleXMLElement Object 
(
    [0] => 4 
) 

因此它可以作为$xml[0];

如果访问您希望能够通过元素名称访问它,您将需要为您的XML添加根元素,例如:

<?xml version="1.0"?> 
<root> 
    <NumCredits>4</NumCredits> 
</root> 

一旦这个文件被解析,您可以使用$xml->NumCredits;

+0

访问值哇,我真的应该想通了这一点,感谢我的减轻沮丧! – stayinwett