2012-10-27 26 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