Home > Backend Development > Golang > Decode XML string into structure

Decode XML string into structure

WBOY
Release: 2024-02-09 10:20:29
forward
1081 people have browsed it

将 XML 字符串解码为结构体

php editor Xiaoxin will introduce how to decode XML strings into structures. XML is a markup language used to store and transmit data, while a structure is a data type used to organize and store data. By decoding the XML string into a structure, we can easily operate and process the data in it. In this article, we will explore the method of using PHP language to parse XML strings and convert them into structures to help you better understand and apply XML data.

Question content

I have the following 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>
Copy after login

I need to decode into this structure:

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

    value1  string  `xml:"value1"`
    value2  string  `xml:"value2"`
}
Copy after login

But I can't decode this child element into the structure correctly.

I get the following error:

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

My code can be found on go playgroud: https://go.dev/play/p/o688qtbarjm

Thanks in advance!

Solution

You should probably move the label.

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

  Value1 string `xml:"SubGroup2>TheTag>Value1"`
  Value2 string `xml:"SubGroup2>TheTag>Value2"`
}
Copy after login

The above is the detailed content of Decode XML string into structure. For more information, please follow other related articles on the PHP Chinese website!

source:stackoverflow.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template