2010-08-25 34 views
2

我需要序列化瀏覽器解析的HTML DOM以良好格式的XML。如何將瀏覽器HTML DOM序列化爲XML?

在Firefox(壁虎),這個工程:

// 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?

謝謝。

回答

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); 

如果你要測試的這款在一個特定的瀏覽器,瀏覽到赫米項目頁面,點擊右上角的工具圖標,然後單擊活動源標籤。將示例代碼複製並粘貼到textarea中,然後單擊Eval Source(響應將是節點名稱)。在輸入欄中輸入sSerial並按回車鍵,或點擊Eval,您應該看到複製的HTML DOM的序列化XML。