2014-01-13 71 views
0

如何將cURL返回的數據顯示爲頁面上的XML文檔?使用cURL時打印爲XML文件

目前我得到的是這樣的:

[something] => 189129 
[somethingElse] => exampleContent 
[somethingElse1] => someMoreExamples 
[somethingElse2] => evenMoreExamples 

從這個代碼:

$url = "http://example/"; 

$header[] = 'Accept: application/xml'; 
$header[] = 'Accept-Encoding: gzip'; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 
curl_setopt($ch, CURLOPT_ENCODING, 'gzip'); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET'); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

$response = curl_exec($ch); 
curl_close($ch); 

$xmlResponse = new SimpleXMLElement($response); 
?> 

<?php 
print_r('<pre>'); 
print_r($xmlResponse); 
print_r('</pre>'); 
?> 

有沒有一種方法格式化響應直接作爲XML還是有辦法用PHP後轉變呢?

謝謝。

+0

你想curl重新格式化你的數據到XML?你是直接使用curl還是通過php,perl等? –

+0

我正在使用cURL通過PHP,我希望它可以像xml文檔一樣打印在頁面上。 – Bogdan

+0

然後用PHP標記問題(所以它會被看到)並添加一些PHP代碼(所以我們可以幫助) –

回答

1

編輯:

如果您獲取數據已經是XML,所有你需要做的是

echo htmlentities($xmlResponse); 

以前的回答(爲後人):

我相信你可以這樣做:

// start your xml with a simple doctype 
$xml = new SimpleXMLElement('<?xml version="1.0" standalone="yes"?><data/>'); 

// loop through each array entry, adding the key/value as a child to 'data' 
foreach($response AS $key=>$value) 
{ 
    $xml->addChild($key, $value); 
} 
// get the xml 
$xmlResponse = $xml->asXML(); 

// output it, encoding the html characters so it displays ok 
echo '<pre>'; 
echo htmlentities($xmlResponse); 
echo '</pre>'; 
+0

非常感謝Adam。只要我有一些聲譽,我會盡快回復你的答案。 – Bogdan

+0

不客氣@Bogdan。下次見! –