更改(没有jquery)这些html / javascript与ie9一起工作的最佳方式是什么,
<html>
<body>
<div id="xmls">
<xml id="myXml">
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
</bookstore>
</xml>
</div>
<!-- ...more html -->
</body>
</html>
用脚本
阅读这个html部分function readBooks() {
var doc = null;
try {
doc = document.getElementById("myXml").XMLDocument.documentElement.childNodes.length;
alert('msg =' + doc);
//i need child nodes to iterate and show values,
} catch (ex) {
alert("problems to load xml" + doc);
throw ex;
}
}
这些与ie6,7,8一起工作正常。
但与ie9没有。
XMLDocument属性未定义,
感谢,
答案 0 :(得分:1)
现代浏览器中的以下内容似乎很好
function readBooks() {
var doc;
try {
doc = document.getElementById("myXml")
alert('msg =' + doc.childNodes.length);
for (var i = 0; i < doc.childNodes.length; i++) {
if(doc.childNodes[i].tagName && doc.childNodes[i].tagName.toUpperCase() == "BOOKSTORE") {
for (var j = 0; j < doc.childNodes[i].childNodes.length; j++) {
if (doc.childNodes[i].childNodes[j].tagName && doc.childNodes[i].childNodes[j].tagName.toUpperCase() == "BOOK") {
var book = doc.childNodes[i].childNodes[j];
alert(book.getAttribute("category"));
alert(getNodeValue(book.getElementsByTagName("title")[0]));
alert(getNodeValue(book.getElementsByTagName("author")[0]));
alert(getNodeValue(book.getElementsByTagName("year")[0]));
alert(getNodeValue(book.getElementsByTagName("price")[0]));
}
}
}
}
} catch (ex) {
alert("problems to load xml" + doc);
throw ex;
}
}
function getNodeValue(node) {
if (node.text)
return node.text;
return node.innerHTML;
}
答案 1 :(得分:1)
我解决了这些问题 String to XML, XML to String