首頁 > 後端開發 > Golang > 主體

如何在 Go 中將映射編組為 XML:結構是唯一的方法嗎?

Barbara Streisand
發布: 2024-10-29 18:31:02
原創
312 人瀏覽過

How to Marshal a Map to XML in Go: Is a Struct the Only Way?

Go 中將映射編組為 XML

嘗試將映射編組為 XML 資料時遇到錯誤?請查看本文以取得解決方案。

流行的 JSON 到 XML 轉換因利用地圖而聞名。然而,當涉及到 XML 時,情況就不同了。您可能會想知道為什麼地圖在這兩種情況下的行為方式不同。使用 Struct 真的是這裡唯一可行的解​​決方案嗎?

解決方案

使用 xml.Marshaler 類型找到了一個出色的解決方案。它的工作原理如下:

  1. 定義 StringMap 類型: 建立一個自訂類型來表示您的地圖,稱為 StringMap。此類型將具有 map[string]string 底層結構。
  2. 實作 MarshalXML 方法: StringMap 應該實作 xml.Marshaler 介面的 MarshalXML 方法。此方法將對應轉換為 XML。
  3. 對映射值進行編碼: 循環遍歷映射的鍵值對,每個鍵和xml.StartElement 標記>xml.CharData 每個值的標記。
  4. 刷新並回傳: 要寫入 XML 標記並刷新緩衝區,請使用編碼器的 EncodeTokenFlush 方法。
建立實作

xml.Marshaler 的自訂StringMap 類型後,將映射編組到XML 就非常簡單:

<code class="go">output, err := xml.MarshalIndent(data, "", "  ")</code>
登入後複製
此方法提供了一種在XML 編組中處理映射的便捷方法,無需求助於結構。

以上是如何在 Go 中將映射編組為 XML:結構是唯一的方法嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板