xml - 如何从返回字符串中提取特定字段
问题描述
在点击服务后能够获得返回字符串。字符串如下所示,
<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”。
解决方案
基本上你也会像其他语言一样反序列化。因此,您将创建一个包含其他结构的结构,然后反序列化。
有关如何执行此操作的示例,请参见例如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
这只是一个快速的(未经测试的!)写下给你一个想法
推荐阅读
- gunicorn - 在上传 6gb 文件时,我在使用 python 的 nginx 服务器中遇到错误
- javascript - 如何打破当前的 NodeRED 流量?
- c - 在 C 中构建共享对象 (.so) 的最佳实践,将用于不同的 FFI,包括 JAVA (JNI) 和 NodeJs (node-ffi)
- python - 我创建的渐变与轴上的值不匹配
- javascript - 如何使用一个搜索字符串搜索多个内容?
- python - 无法安装 psycopg2
- artifactory - 我想通过 AQL 读取存在于工件(.jar)中的文件而不下载工件
- unit-testing - 如何模拟在构造函数 ES6 中调用的“new Class()” - Jasmine
- forms - Shopify AJAX 表单到第三方服务
- c# - KeyValuePair 的 EqualityComparer 问题