首頁 > 後端開發 > Golang > 如何在 Go 中編組期間動態設定 XML 元素名稱?

如何在 Go 中編組期間動態設定 XML 元素名稱?

Linda Hamilton
發布: 2024-12-02 08:41:13
原創
337 人瀏覽過

How Can I Dynamically Set XML Element Names During Marshaling in Go?

XML 編組中的動態元素名稱

XML 文件通常包含結構相似但名稱不同的元素。為了在 Go 中處理這個問題,您可能想知道是否可以在 XML 封送過程中動態修改元素名稱。

結構體定義

讓我們考慮以下 XML文檔,其中包含兩個元素“PERSON”和“SENDER”包含相同的元素但具有不同的屬性名稱:

<PERSON>
  <ELEM1>...</ELEM1>
  <ELEM2>...</ELEM2>
  <ELEM3>...</ELEM3>
  <ELEM4>...</ELEM4>
</PERSON>

<SENDER>
  <ELEM1>...</ELEM1>
  <ELEM2>...</ELEM2>
  <ELEM3>...</ELEM3>
  <ELEM4>...</ELEM4>
</SENDER>
登入後複製

最初,您可以嘗試定義這樣的結構體,其中元素名稱是靜態設定的:

type Person struct {
    XMLName string `xml:"PERSON"` // Static element name
    E1 string `xml:"ELEM1"`
    E2 string `xml:"ELEM2"`
    E3 string `xml:"ELEM3"`
    E4 string `xml:"ELEM4"`
}
登入後複製

動態元素名稱

要讓元素名稱動態化,您需要使用 xml.Name 類型而不是string:

type Person struct {
    XMLName xml.Name
    E1 string `xml:"ELEM1"`
    E2 string `xml:"ELEM2"`
    E3 string `xml:"ELEM3"`
    E4 string `xml:"ELEM4"`
}
登入後複製

現在,您可以使用 xml 的 Local 欄位動態設定元素名稱。 Name:

person := Person{
    XMLName: xml.Name{Local: "Person"},
    // ... Set other fields
}
登入後複製

這允許您根據以下內容動態產生XML 元素名稱你的特定資料

範例

可以在Go Playground 上找到一個工作範例:http://play.golang.org/p/bzSutFF9Bo。

透過此技術,您可以建立處理具有不同名稱的 XML 元素的結構,從而為 XML 處理提供靈活性和可擴展性程式碼。

以上是如何在 Go 中編組期間動態設定 XML 元素名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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