首頁 >後端開發 >Golang >如何在 Go 中解組期間處理未知的 XML 屬性?

如何在 Go 中解組期間處理未知的 XML 屬性?

Linda Hamilton
Linda Hamilton原創
2024-11-23 12:20:11959瀏覽

How to Handle Unknown XML Attributes During Unmarshalling in Go?

使用Golang 解組未知數量的XML 屬性

在Golang 中,解組XML 涉及將XML 資料解析為結構體,從而可以方便地進行資料操作和檢索。但是,某些場景需要處理意外的 XML 屬性,其中屬性名稱和值可能會因實例而異。

encoding/xml 套件透過 xml:",any 提供具有動態屬性的 XML 元素解組的支援,attr」註解。此功能可以將所有屬性集合到結構內的 xml.Attr 切片中。

為了說明此功能,請考慮以下程式碼:

package main

import (
    "encoding/xml"
    "fmt"
)

func main() {
    var v struct {
        Attributes []xml.Attr `xml:",any,attr"`
    }

    data := `<TAG ATTR1="VALUE1" ATTR2="VALUE2" />`

    err := xml.Unmarshal([]byte(data), &v)
    if err != nil {
        panic(err)
    }
    fmt.Println(v.Attributes)
}

執行時,此程式碼將輸出以下內容:

[{ATTR1 VALUE1} {ATTR2 VALUE2}]

Attributes 切片中的每個條目代表一個屬性,由其名稱組成(例如, “ATTR1”)和值(例如“VALUE1”)。

此增強功能使開發人員能夠處理包含未知或動態屬性的 XML 文檔,使 Go 成為更通用的 XML 處理工具。

以上是如何在 Go 中解組期間處理未知的 XML 屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn