提问人:Eero 提问时间:9/4/2008 最后编辑:Alexander ElginEero 更新时间:2/8/2016 访问量:26315
如何使用 JavaScript 以跨浏览器方式将 DOM 序列化为 XML 文本?
How do I serialize a DOM to XML text, using JavaScript, in a cross browser way?
问:
我有一个XML对象(使用's加载)。我已经修改了对象(使用jQuery),并希望将其存储为字符串中的文本。XMLHTTPRequest
responseXML
在Firefox等人中显然有一个简单的方法可以做到这一点:
var xmlString = new XMLSerializer().serializeToString( doc );
(来自 Rosettacode )
但是如何在 IE6 和其他浏览器中做到这一点(当然,不会破坏 Firefox)?
答:
35赞
Huppie
9/4/2008
#1
您可以在 Internet exlporer 中使用 doc.xml。
你会得到这样的东西:
function xml2Str(xmlNode) {
try {
// Gecko- and Webkit-based browsers (Firefox, Chrome), Opera.
return (new XMLSerializer()).serializeToString(xmlNode);
}
catch (e) {
try {
// Internet Explorer.
return xmlNode.xml;
}
catch (e) {
//Other browsers without XML Serializer
alert('Xmlserializer not supported');
}
}
return false;
}
在这里找到它。
评论
0赞
Marcel Popescu
9/5/2011
谢谢。。。经过两天的搜索,我终于找到了这个。(我花了一段时间才意识到 .xml 根本不适用于 FF/Chrome,我以为我做错了什么。
0赞
cburgmer
6/3/2012
Webkit 目前有一个错误(例如在 Chrome 19 中),并且不会返回正确的 XML: xmlNode = document.createElement('img');xmlNode.src = “测试.png” xmlNode.alt = “测试” (新的 XMLSerializer()).serializeToString(xmlNode);返回: “<img src=”test.png“ alt=”test“>”
0赞
Esailija
7/20/2012
@cburgmer那不是 XML 节点
0赞
cburgmer
7/24/2012
@Esailija我不明白,那是什么?我希望 XMLSerializer 将 xmlNode 序列化为 <img src... />(注意尾部斜杠)
0赞
Esailija
7/24/2012
@cburgmer它是一个 html 节点,则您使用 html 文档创建了它。XML 节点没有类似 的属性。看看实际的 xml 元素有什么:.src
console.dir( document.implementation.createDocument( null, "xml", null ).createElement("img") )
评论