首页 > 解决方案 > 如何从返回字符串中提取特定字段

问题描述

在点击服务后能够获得返回字符串。字符串如下所示,

<details>
<unitdetails>
<number>11</number>
<name>John</name>
<sal>20000</sal>
</unitdetails>
<deptdetails>
<number>10</number>     <<<<<<<<<<<<<<<<<<<<<<<<<
<amt>1000</amt>
<date>20211407</date>
</deptdetails>
<divdetails>
<number>200</number>
<status>Available</status>
<value>10</value>
</divdetails>
</details>

从上面的输出字符串中,我只需要提取 deptdetails 下的数字“10”。

标签: xmlgo

解决方案


基本上你也会像其他语言一样反序列化。因此,您将创建一个包含其他结构的结构,然后反序列化。

有关如何执行此操作的示例,请参见例如https://tutorialedge.net/golang/parsing-xml-with-golang/

type Details struct {
    XMLName     xml.Name `xml:"details"`
    Text        string   `xml:",chardata"`
    Unitdetails struct {
        Text   string `xml:",chardata"`
        Number string `xml:"number"`
        Name   string `xml:"name"`
        Sal    string `xml:"sal"`
    } `xml:"unitdetails"`
    Deptdetails struct {
        Text   string `xml:",chardata"`
        Number string `xml:"number"`
        Amt    string `xml:"amt"`
        Date   string `xml:"date"`
    } `xml:"deptdetails"`
    Divdetails struct {
        Text   string `xml:",chardata"`
        Number string `xml:"number"`
        Status string `xml:"status"`
        Value  string `xml:"value"`
    } `xml:"divdetails"`
} 

var details Details
xml.Unmarshal(byteValue, &details)
details.DeptDetails.Number // access

这只是一个快速的(未经测试的!)写下给你一个想法


推荐阅读