我想用 Javascript 序列化 DOM 并期望得到一个格式良好的 XML 文档,但是meta
标签没有关闭:
<html>
<head>
<meta name="keywords" content="test">
</head>
<body>
<p>test
<pre id='x'/>
</body>
<script>
document.getElementById('x').appendChild(
document.createTextNode(new XMLSerializer().serializeToString(document))
);
</script>
</html>
输出包含无效的 XML,其中meta
未关闭。然而p
已关闭:
<html>
<head>
<meta name="keywords" content="test">
</head>
<body>
<p>test</p>
</body>
</html>
Chrome 30.0 和 Phantomjs 1.9.2 中的行为相同。
XMLSerializer
即使我的 HTML 输入已损坏,我也期待来自 的格式良好的 XML 输出。为什么这没有发生,什么是解决方法?我需要将 DOM 转换为 XML 作为文本。