XMLSerializer
XMLSerializer 介面提供了一個 serializeToString() 方法,用於構造一個表示 DOM 樹的 XML 字串。
注意: 生成的 XML 字串不保證是格式正確的 XML。
建構函式
XMLSerializer()-
建立一個新的
XMLSerializer物件。
例項方法
serializeToString()-
將子樹序列化為字串並返回。
示例
將 XML 序列化為字串
此示例僅將整個文件序列化為包含 XML 的字串。
js
const s = new XMLSerializer();
const str = s.serializeToString(document);
saveXML(str);
這涉及到建立一個新的 XMLSerializer 物件,然後將要被序列化的 Document 傳遞給 serializeToString(),該方法返回文件的 XML 等效表示。saveXML() 表示一個稍後會儲存序列化字串的函式。
基於 XML 將節點插入 DOM
此示例使用 Element.insertAdjacentHTML() 方法,透過序列化 Element 物件建立的 XML,將一個新的 DOM Node 插入到 Document 的 body 中。
注意: 在實際應用中,通常應該呼叫 importNode() 方法將新節點匯入 DOM,然後呼叫以下方法之一將節點新增到 DOM 樹中:
Element.append()/Element.prepend()和Document.append()/Document.prepend()方法。Element.replaceWith方法(用新節點替換現有節點)Element.insertAdjacentElement()方法。
因為 insertAdjacentHTML() 接受一個字串而不是一個 Node 作為其第二個引數,所以 XMLSerializer 被用來首先將節點轉換為字串。
js
const inp = document.createElement("input");
const XMLS = new XMLSerializer();
const inp_xmls = XMLS.serializeToString(inp); // First convert DOM node into a string
// Insert the newly created node into the document's body
document.body.insertAdjacentHTML("afterbegin", inp_xmls);
程式碼透過呼叫 Document.createElement() 建立一個新的 <input> 元素,然後使用 serializeToString() 將其序列化為 XML。
完成之後,使用 insertAdjacentHTML() 將 <input> 元素插入到 DOM 中。
規範
| 規範 |
|---|
| HTML # xmlserializer |
瀏覽器相容性
載入中…