[英]How can i get the entire xml node with javascript under Chrome?
var xml = '<books><book><id>1</id></book></books>';
var xmlDoc = $.parseXML(xml);
$(xmlDoc).find("book").each(function(){
alert($(this));
});
我想看的是:
<book><id>1</id></book>
在IE中,我可以使用$(this)[0] .xml。 但是在Chrome中,没有xml属性。 那我该怎么办?
谢谢。
最简单的方法是使用浏览器的内置XMLSerializer
实现(在包括IE 9在内的所有主要浏览器的当前版本中提供):
function serializeXmlNode(xmlNode) {
if (typeof window.XMLSerializer != "undefined") {
return new window.XMLSerializer().serializeToString(xmlNode);
} else if (typeof xmlNode.xml != "undefined") {
return xmlNode.xml;
}
return "";
}
var xml = '<books><book><id>1</id></book></books>';
var xmlDoc = $.parseXML(xml);
$(xmlDoc).find("book").each(function(){
alert( serializeXmlNode(this) );
});
参考文献:
如果要查看 1
( book
元素中id
元素的文本),请使用
alert($(this).find('id').text());
现场示例| 资源
(您的格式化完全改变了这个问题-首先正确格式化的重要性!)
更新 :
我相信实现此目的的唯一方法(除了编写自己的DOM-to-XML序列化程序之外) (不,还有另一种可能更好的方法)是将其包装在另一个元素中并使用html
:
alert($("<x>").append(this).html()); // <== Probably dangerous
......但将元素迁出原文件的。 因此,您可以通过克隆来避免这种情况:
alert($("<x>").append(this.cloneNode(true)).html());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.