1
我想序列DOM在Javascript中,並期望得到一個良好的XML文檔,但是meta
標籤未關閉:如何在Javascript中獲取DOM文檔的格式良好的XML?
<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
得到格式良好的XML輸出,即使我的HTML輸入已損壞。爲什麼這沒有發生,什麼是解決方法?我需要將DOM作爲文本轉換爲XML。
所以,你要轉換的是沒有很好形成,一個是醫生?除非是xhtml,否則瀏覽器不能通過格式良好的規則進行播放。 –
@MikeCheel我認爲他期望DOM是良構的,即使瀏覽器容忍格式錯誤的HTML。 – Barmar
@Barnar就是這正是我所說的。除非它是xhtml,否則你將無法期待任何形式的正確(並且瀏覽器也會按照他們的喜好填充內容)。我認爲他將不得不做一些按摩來獲得他想要的東西。 –