如何将浏览器HTML DOM序列化为XML?

时间:2010-08-25 16:17:09

标签: html xml dom serialization

我需要将浏览器解析的HTML DOM序列化为格式良好的XML。

在firefox(gecko)中,这有效:

// serialize body to well-format XML.
var xml = new XMLSerializer().serializeToString(document.body);

但是在webkit中,结果等同于document.body.outerHTML,而不是格式良好的XML(例如:<br> won't become <br />

如何在webkit中将浏览器HTML DOM序列化为XML?

感谢。

1 个答案:

答案 0 :(得分:0)

我有一个setInnerXHTML方法(不是Facebook版本)应该适用于此。该方法包含在基本框架文件hemi.js中,可从Hemi Project Page获得。它也包含在我较旧的libXmlRequest库中。

示例:

var oXml = Hemi.xml.newXmlDocument("Xhtml");
Hemi.xml.setInnerXHTML(oXml.documentElement, document.documentElement, oXml);
var sSerial = Hemi.xml.serialize(oXml);

如果要在特定浏览器上进行测试,请导航至Hemi Project Page,单击右上角的工具图标,然后单击 Active Source 选项卡。将示例代码复制并粘贴到textarea中,然后单击 Eval Source (响应将是节点名称)。在输入字段中键入sSerial并按Enter键,或单击 Eval ,您应该看到复制的HTML DOM的序列化XML。