我想解析来自www.digiflora.se的xml回复。但是标签之间的一些文本包含& -sign,它会停止解析器。
由于它不是我的服务器,我无法更改生成的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个文件。 exampleWithoutAND.xml,exampleWithAND.xml。当我尝试使用WITH&amp; -sign时,我看不到弹出窗口。当我尝试没有&amp; -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>
答案 0 :(得分:0)
将数据类型更改为xml
。你不需要解析它。
$.ajax({
type: "GET",
url: "svfxml.php.xml",
dataType: "xml",
success: function(xml) {
alert($(xml).find("title").text())
}
});