XMLHTTP 请求未解析 XML 文件
XMLHTTP request not parsing XML file
我正在尝试使用一些 xml 并基于 this example 在 xhtml 中提供它
但我得到:
错误:
XML Parsing Error: not well-formed
...f5r.xhtml
Line Number 16, Column 37:
if (this.readyState == 4 && this.status == 200){
------------------------------------^
f5r.xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<folio name="f5r" wordCount="56" width="1067" height="1500">
<word index="0" x="131" y="202" width="70" height="49">hello</word>
<word index="1" x="212" y="198" width="62" height="65">world</word>
</folio>
f5r.xhtml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/TR/xhtml1" xml:lang="en" lang="en">
<head>
<?xml-stylesheet href="../../vms.css"?>
<script src="../../public/javascripts/jquery-migrate-1.4.1.min.js"></script>
<script>
function loadXMLDoc() {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200){
myFunction(this);
}
};
xmlhttp.open("GET", "f5r.xml", true);
xmlhttp.send();
}
function myFunction(xml) {
var x, i, xmlDoc, txt;
xmlDoc = xml.responseXML;
txt = "";
x = xmlDoc.getElementsByTagName("folio");
for (i = 0; i< x.length; i++) {
txt += x[i].childNodes[0].nodeValue + "<br>";
}
document.getElementById("folio").innerHTML = txt;
}
</script>
</head>
<body onload="loadXMLDoc()">
<img class="foliophoto" id="f5r_lg"/>
<div class="folios">
<p class="folio">
<!-- <xml src="f5r.xml"></xml> -->
</p>
</div>
</body>
</html>
问题可能出在 JQuery 未在本地加载但我不确定也不确定为什么 JQ 无法在本地工作但我以前遇到过这个问题。
更新:区分大小写不是问题。 “作品集”也不起作用。
在解析的字符数据中,&
应该开始实体引用,例如 &
。
标准解决方案是将 JavaScript 包装在 CDATA
部分中,这样 &&
就不会被解释为标记,并使用 JavaScript 注释,以便CDATA
分隔符被 JavaScript 忽略:
<script>
//<![CDATA[
JavaScript code here
//]]>
</script>
我正在尝试使用一些 xml 并基于 this example 在 xhtml 中提供它 但我得到:
错误:
XML Parsing Error: not well-formed
...f5r.xhtml
Line Number 16, Column 37:
if (this.readyState == 4 && this.status == 200){
------------------------------------^
f5r.xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<folio name="f5r" wordCount="56" width="1067" height="1500">
<word index="0" x="131" y="202" width="70" height="49">hello</word>
<word index="1" x="212" y="198" width="62" height="65">world</word>
</folio>
f5r.xhtml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/TR/xhtml1" xml:lang="en" lang="en">
<head>
<?xml-stylesheet href="../../vms.css"?>
<script src="../../public/javascripts/jquery-migrate-1.4.1.min.js"></script>
<script>
function loadXMLDoc() {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200){
myFunction(this);
}
};
xmlhttp.open("GET", "f5r.xml", true);
xmlhttp.send();
}
function myFunction(xml) {
var x, i, xmlDoc, txt;
xmlDoc = xml.responseXML;
txt = "";
x = xmlDoc.getElementsByTagName("folio");
for (i = 0; i< x.length; i++) {
txt += x[i].childNodes[0].nodeValue + "<br>";
}
document.getElementById("folio").innerHTML = txt;
}
</script>
</head>
<body onload="loadXMLDoc()">
<img class="foliophoto" id="f5r_lg"/>
<div class="folios">
<p class="folio">
<!-- <xml src="f5r.xml"></xml> -->
</p>
</div>
</body>
</html>
问题可能出在 JQuery 未在本地加载但我不确定也不确定为什么 JQ 无法在本地工作但我以前遇到过这个问题。
更新:区分大小写不是问题。 “作品集”也不起作用。
在解析的字符数据中,&
应该开始实体引用,例如 &
。
标准解决方案是将 JavaScript 包装在 CDATA
部分中,这样 &&
就不会被解释为标记,并使用 JavaScript 注释,以便CDATA
分隔符被 JavaScript 忽略:
<script>
//<![CDATA[
JavaScript code here
//]]>
</script>