首頁  >  文章  >  後端開發  >  將 XML 字串解碼為結構體

將 XML 字串解碼為結構體

WBOY
WBOY轉載
2024-02-09 10:20:291015瀏覽

将 XML 字符串解码为结构体

php小編小新將為大家介紹如何將XML字串解碼為結構體。 XML是一種用於儲存和傳輸資料的標記語言,而結構體是一種用於組織和儲存資料的資料類型。透過將XML字串解碼為結構體,我們可以方便地對其中的資料進行操作和處理。在本文中,我們將探索使用PHP語言解析XML字串並將其轉換為結構體的方法,幫助您更好地理解和應用XML資料。

問題內容

我有以下 xml:

<doc>
<subgroup1>
    <value1>abc123</value1>
    <value2>abc123</value2>
    <value3>abc123</value3>
    <value4>abc123</value4>
</subgroup1>
<subgroup2>
    <thetag mytagattr="abc123">
        <value1>abc123</value1>
        <value2>abc123</value2>
        <value3>abc123</value3>
        <value4 mytagattr="abc123">abc123</value4>
        <value5>abc123</value5>
        <value6>abc123</value6>
        <value7>abc123</value7>
        <value8>abc123</value8>
        <value9>abc123</value9>
    </thetag>
</subgroup2>
</doc>

我需要解碼成這個結構:

type thetag struct {
    xmlname xml.name `xml:"subgroup2>thetag"`

    value1  string  `xml:"value1"`
    value2  string  `xml:"value2"`
}

但是我無法將此子元素正確解碼到結構中。

我收到以下錯誤:

error decoding message content: %!w(xml.UnmarshalError=expected element type <SubGroup2>TheTag> but have <DOC>)

我的程式碼可以在 go playgroud 上找到:https://go.dev/play/p/o688qtbarjm

提前致謝!

解決方法

您可能應該移動標籤。

type TheTag struct {
  XMLName xml.Name `xml:"DOC"`

  Value1 string `xml:"SubGroup2>TheTag>Value1"`
  Value2 string `xml:"SubGroup2>TheTag>Value2"`
}

以上是將 XML 字串解碼為結構體的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除