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

标签 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?

谢谢。

最佳答案

我有一个 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 项目页面,单击右上角的工具图标,然后单击 Active Source 选项卡。将示例代码复制并粘贴到文本区域中,然后单击 Eval Source(响应将是节点名称)。在输入字段中键入 sSerial 并按回车键,或单击 Eval,您应该会看到复制的 HTML DOM 的序列化 XML。

关于html - 如何将浏览器 HTML DOM 序列化为 XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3568017/

相关文章:

javascript - jQuery 随机顶部/左侧定位预 DOM

javascript - jQuery 警报不起作用

javascript - VueJS 中的下拉菜单(事件菜单的切换)

python - 将 HTML 样式的文本注释解析为字典列表

html - 不包含某些值的所有元素文本的XPath

java - 如何在fragment_map.xml 中启用位置并启用工具栏?

jquery - 尝试在 Canvas 图像上创建缩放插件

xml - 在属性之间添加换行符

javascript - 如何在 DOM 中选择具有 ID 的特定元素,然后使用 jQuery 跳到具有相同 ID 的下一个元素

java - dom4j.Node 迭代元素映射