我想解析來自www.digiflora.se的XML響應。但是標籤之間的一些文本包含停止解析器的標誌 - &。JavaScript解析與&標誌的遠程XML
由於它不是我的服務器,所以我無法更改生成的XML。而且我不能將其作爲解析的一部分,因爲錯誤在過程中發生得太早。
在調試時,我也對Chrome中的跨域限制(有人說這也延伸到本地存儲的文件)感到困惑。但我認爲下面的例子表明這與此無關。
我將一些有問題的文本粘貼到w3shools示例中。
XML
<?xml version="1.0" encoding="utf-8"?>
<note>
<to>Urvalslista för örter och ris. </to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
使用Javascript/jQuery的
$.ajax({
type: "GET",
url: "note.xml",
dataType: "html",
success: function(xml) {
$.parseXML(xml);
}
});
錯誤:
Uncaught Error: Invalid XML: <?xml version="1.0" encoding="utf-8"?>
<note>
<to>Urvalslista för örter och ris. </to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
jquery-1.10.2.js:516
繼續:問題的更一般的版本:我嘗試了2個文件。 exampleWithANDAND.xml,exampleWithAND.xml。當我嘗試使用&-sign時,我看不到彈出窗口。當我嘗試沒有&的簽名時,我看到彈出窗口。爲什麼?
exampleWithoutAND.xml:
<?xml version="1.0" encoding="utf-8"?>
<note>
<to>Urvalslista </to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
exampleWithAND.xml:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Urvalslista & </to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
並全面javascript代碼:
<!DOCTYPE html>
<html>
<head>
<title>jQuery and XML</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="language" content="en" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"</script>
</head>
<body
<div id="output"></div>
<script type="text/javascript">
$(document).ready(function(){
$.ajax({
type: "GET",
crossDomain:true,
dataType: "xml",
//url: "exampleWithoutAND.xml",
url: "exampleWithAND.xml",
success: function(xml) {
alert("!");
}
});
});
</script>
</body>
</html>
你能設置jsFiddle嗎? – user10
以前從未嘗試過。我在哪裏把XML文件? – user2857632
我在下面回答。試試看。 – user10