Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Chrome下使用javascript获取整个xml节点? var xml='1'; var xmlDoc=$.parseXML(xml); $(xmlDoc).find(“book”).each(函数(){ 警报($(本)); });_Javascript_Xml_Google Chrome - Fatal编程技术网

如何在Chrome下使用javascript获取整个xml节点? var xml='1'; var xmlDoc=$.parseXML(xml); $(xmlDoc).find(“book”).each(函数(){ 警报($(本)); });

如何在Chrome下使用javascript获取整个xml节点? var xml='1'; var xmlDoc=$.parseXML(xml); $(xmlDoc).find(“book”).each(函数(){ 警报($(本)); });,javascript,xml,google-chrome,Javascript,Xml,Google Chrome,我想看到的是: var xml = '<books><book><id>1</id></book></books>'; var xmlDoc = $.parseXML(xml); $(xmlDoc).find("book").each(function(){ alert($(this)); }); 1 在IE中,我可以使用$(this)[0].xml。但是在Chrome中,没有xml属性。 那我该怎么办 谢谢。如果您

我想看到的是:

var xml = '<books><book><id>1</id></book></books>';
var xmlDoc = $.parseXML(xml);
$(xmlDoc).find("book").each(function(){
  alert($(this));
});
1
在IE中,我可以使用$(this)[0].xml。但是在Chrome中,没有xml属性。 那我该怎么办

谢谢。

如果您想查看
1
book
元素中
id
元素的文本),请使用

实例|来源

(您的格式设置完全改变了这个问题——首先正确设置格式的重要性!)

更新

我认为实现这一点的唯一方法(除了将自己的DOM编写为XML序列化程序之外)(不,是有办法的)是将其包装在另一个元素中并使用
html

alert($(this).find('id').text());
alert($(“”).append(this.html());// 如果要查看
1
book
元素中
id
元素的文本),请使用

实例|来源

(您的格式设置完全改变了这个问题——首先正确设置格式的重要性!)

更新

我认为实现这一点的唯一方法(除了将自己的DOM编写为XML序列化程序之外)(不,是有办法的)是将其包装在另一个元素中并使用
html

alert($(this).find('id').text());

alert($(“”).append(this.html());// 最简单的方法是使用浏览器的内置
XMLSerializer
实现(在所有主要浏览器的当前版本中都有实现,包括IE 9):

函数序列化xmlNode(xmlNode){ if(typeof window.XMLSerializer!=“未定义”){ 返回新的window.XMLSerializer().serializeToString(xmlNode); }else if(typeof xmlNode.xml!=“未定义”){ 返回xmlNode.xml; } 返回“”; } var xml='1'; var xmlDoc=$.parseXML(xml); $(xmlDoc).find(“book”).each(函数(){ 警报(序列化xmlnode(this)); });
参考资料:


最简单的方法是使用浏览器内置的
XMLSerializer
实现(存在于所有主要浏览器的当前版本中,包括IE 9):

函数序列化xmlNode(xmlNode){ if(typeof window.XMLSerializer!=“未定义”){ 返回新的window.XMLSerializer().serializeToString(xmlNode); }else if(typeof xmlNode.xml!=“未定义”){ 返回xmlNode.xml; } 返回“”; } var xml='1'; var xmlDoc=$.parseXML(xml); $(xmlDoc).find(“book”).each(函数(){ 警报(序列化xmlnode(this)); });
参考资料:


啊,你的格式改变了问题。(首先,正确设置格式的重要性!:-)啊,你的格式改变了问题。(首先是正确格式化的重要性!:-)现代浏览器实现了
XMLSerializer
,这项工作做得很好。谢谢T.J.我没想到你会在这么短的时间内回复。在问题发布并立即更正后,我立即意识到了格式错误。现代浏览器实现了
XMLSerializer
,这项工作做得很好。谢谢T.J。我没想到你会在这么短的时间内回复。在问题发布并立即更正后,我立即意识到格式错误。
alert($("<x>").append(this).html()); // <== Probably dangerous
alert($("<x>").append(this.cloneNode(true)).html());
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) );
});