为了账号安全,请及时绑定邮箱和手机立即绑定

戈兰解析具有相同名称的嵌套节点的 XML?

戈兰解析具有相同名称的嵌套节点的 XML?

Go
紫衣仙女 2022-09-26 20:11:02
我需要解析xml代码,<claims>    <claim>        <claim-text>ABC            <claim-text>PQR</claim-text>            <claim-text>Xyz                <claim-text>A</claim-text>                <claim-text>B</claim-text>                <claim-text>C</claim-text>            </claim-text>        </claim-text>    </claim>    <claim>        <claim-text>PPP            <claim-text>ZZZ</claim-text>            <claim-text>MMM</claim-text>        </claim-text>    </claim>如何获取所有索赔文本中的“索赔”数组?我正在尝试这个,但它没有给出索赔文本中包含的任何文本。type Result struct {Claims  []Claim `xml:"claims>claim"`}type Claim struct{  ClaimText []string `xml:"claim-text"` }任何帮助将不胜感激。
查看完整描述

2 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

type Result struct {

    Claims []Claim `xml:"claim"`

}


type Claim struct {

    ClaimText []ClaimText `xml:"claim-text"`

}


type ClaimText struct {

    Value     string      `xml:",chardata"`

    ClaimText []ClaimText `xml:"claim-text"`

}

https://play.golang.org/p/uueAiwG84LH


如果你想摆脱空白,你可以实现解封接口:


func (t *ClaimText) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {

    type T ClaimText

    if err := d.DecodeElement((*T)(t), &start); err != nil {

        return err

    }


    t.Value = strings.TrimSpace(t.Value)

    return nil

}

https://play.golang.org/p/2I1meeBm0pu


查看完整回答
反对 回复 2022-09-26
?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

看看这个在线工具,它生成以下结构:


type Claims struct {

    XMLName xml.Name `xml:"claims"`

    Text    string   `xml:",chardata"`

    Claim   []struct {

        Text      string `xml:",chardata"`

        ClaimText struct {

            Text      string `xml:",chardata"`

            ClaimText []struct {

                Text      string   `xml:",chardata"`

                ClaimText []string `xml:"claim-text"`

            } `xml:"claim-text"`

        } `xml:"claim-text"`

    } `xml:"claim"`


查看完整回答
反对 回复 2022-09-26
  • 2 回答
  • 0 关注
  • 98 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信