2014-03-24 83 views
0

我必須寫入XML文件,因爲我知道從JavaScript執行此操作的唯一方法是使用AJAX,這是我嘗試實現的方式,但是從我開始最後使用它,我無法解析文本,所以我得到的是字符的HTML代碼,而不是字符本身。使用JQuery將XML寫入文件AJAX

我有什麼:

AJAX

$.ajax({ 
    type: 'POST', 
    url: "writeXML.php", 
    dataType: 'xml', 
    data: {filename: "test.xml", content: listXML}, 
    error: function() { 
     alert("Unknown error. Data could not be written to the file."); 
    }, 
    success: function() { 
     window.open("test.xml"); 
    } 
}); 

PHP文件

<?php 

$fileName = htmlspecialchars($_POST["filename"]); 
$content = htmlspecialchars($_POST["content"]); 
$file = fopen($fileName, "w"); 
fwrite($file, $content); 
fclose($file); 
?> 

我想實現:

<?xml version="1.0" encoding="UTF-8"?> 
<SeriesList> 
<Series> 
<title>Ookami to Koushinryou</title> 
<score>6</score> 
<episodes>7</episodes> 
<episodesTotal>23</episodesTotal> 
<episodeLength>20</episodeLength> 
<timesWatched>dropped</timesWatched> 
</Series> 
<Series> 
<title>Speed Grapher</title> 
<score>5</score> 
<episodes>7</episodes> 
<episodesTotal>24</episodesTotal> 
<episodeLength>20</episodeLength> 
<timesWatched>dropped</timesWatched> 
</Series> 
</SeriesList> 

我能得到什麼:

&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; 
&lt;SeriesList&gt;  
&lt;Series&gt; 
&lt;title&gt;Ookami to Koushinryou&lt;/title&gt; 
&lt;score&gt;6&lt;/score&gt; 
&lt;episodes&gt;7&lt;/episodes&gt; 
&lt;episodesTotal&gt;23&lt;/episodesTotal&gt; 
&lt;episodeLength&gt;20&lt;/episodeLength&gt; 
&lt;timesWatched&gt;dropped&lt;/timesWatched&gt; 
&lt;/Series&gt;  
&lt;Series&gt; 
&lt;title&gt;Speed Grapher&lt;/title&gt; 
&lt;score&gt;5&lt;/score&gt; 
&lt;episodes&gt;7&lt;/episodes&gt; 
&lt;episodesTotal&gt;24&lt;/episodesTotal&gt; 
&lt;episodeLength&gt;20&lt;/episodeLength&gt; 
&lt;timesWatched&gt;dropped&lt;/timesWatched&gt; 
&lt;/Series&gt;  
&lt;/SeriesList&gt; 

那麼我該怎麼辦?我嘗試過utf8_encode(),但它不起作用,我不完全用PHP調用多功能,所以我沒有想法。

我在網上搜索了我想到的所有東西,但到目前爲止沒有任何工作。

在此先感謝您的一切。

回答

1

刪除您所有的用途htmlspecialchars

您的文件系統不使用HTML來表示文件名,所以您不應該將文件名轉換爲HTML。 (你需要清理你的文件名,儘管目前你正在讓人們覆蓋他們喜歡的服務器上的任何文件!)

你的XML數據已經是XML,所以你不能將它轉換成HTML表示的XML。

+0

這就是複製粘貼代碼時發生的情況。 非常感謝。 –