2011-05-03 72 views
2

我想知道是否可以使用Yii顯示XML文檔。我不想在代碼中創建文檔,它已經存在。我只想在瀏覽器中顯示它,就像普通視圖一樣,除了應該呈現XML文檔而不是網頁。例如,按下按鈕即可顯示XML文檔。 我希望這個問題有意義..在Yii中顯示XML文檔

+0

就我所知,沒有Yii的具體方式來做到這一點,它只是處理PHP和HTML。 – thaddeusmt 2011-05-03 18:39:29

回答

4

如果你想要做的是返回一個XML文檔,而不是一個HTML文檔(如REST API或其他),只需創建一個新的'xml.php'佈局具有基本的XML,像<?xml version="1.0" encoding="UTF-8" standalone="yes">東西,在你渲染視圖前你的行動,設置HTTP頭,像這樣:

header('Content-Type: text/xml'); 

這裏有這個Yii REST how-to article更有幫助的提示。

- 或 -

假設你只想輸出,保存間距和標記字符的XML文檔供人閱讀(和示例之類的話),在您看來行動:

<?php 
public function actionView() 
{ 
$output = $myXMLString; // I don't know where you are getting your XML from, but this is it 
$output = htmlentities($output); // convert HTML/XML tags like < to their HTML codes ($lt;)) 
    $this->render('view',array(
    'xmlString'=>htmlentities($output), // send it to the view for rendering 
)); 
} 

然後,在你的看法:當呼應

<pre> 
<?php echo $xmlString ?> 
<pre> 

包裝一下你的XML字符串在<pre>標籤應PRES保留XML縮進,並使用htmlentities()對其進行編碼應該可以防止您的<xmltags>被瀏覽器解析,從而使它們正確顯示。

可能還有一些不錯的JavaScript libraries that do XML syntax突出顯示。

我希望這能回答你的問題嗎?

+0

感謝您的精彩提示。我可能會在某些時候使用這些信息,儘管我意識到對於我原來的問題,我只需要一個到現有XML文檔的簡單鏈接即可。 – Epicurus 2011-05-06 06:32:23