我必须写一个XML文件,因为我知道用JavaScript做的唯一方法是使用AJAX,这是我试图实现的方式,但它是一个因为我上次使用它并且我无法解析文本所以我得到的是字符的HTML代码而不是字符本身。
我有什么:
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>
我得到了什么:
<?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>
那我该怎么办?我尝试过utf8_encode(),但它不起作用,我并不完全是你用PHP多才多艺的东西,所以我没有想法。
我在网上搜索了我想到的一切,但到目前为止没有任何效果。
提前感谢所有事情。
答案 0 :(得分:1)
删除htmlspecialchars
的所有用途。
您的文件系统不使用HTML来表示文件名,因此您不应将文件名转换为HTML。 (你需要清理你的文件名,但是当你让人们在你的服务器上覆盖他们喜欢的任何文件时!)
您的XML数据已经是XML,因此您无法将其转换为XML的HTML表示形式。