XMLSerializer

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

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 樹中:

因為 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

瀏覽器相容性

另見