xml - 节点 N 的 Go XML Unmarshalling 属性 X

标签 xml go

我想将特定节点 N 的属性 X 的值解码到结构字段。像这样:

var data = `<A id="A_ID">
<B id="B_ID">Something</B>
</A>
`

type A struct {
    Id   string `xml:"id,attr"` // A_ID
    Name string `xml:"B.id,attr"` // B_ID
}

http://play.golang.org/p/U6daYJWVUX

据我所知check这是 Go 不支持的。我是正确的,还是我在这里遗漏了什么?

最佳答案

在你的问题中你没有提到B。我猜您需要将其 attr 解码为 A.Name?如果是这样 - 您可以将 A 结构更改为如下所示:

type A struct {
    Id string `xml:"id,attr"` // A_ID
    Name  struct {
        Id string `xml:"id,attr"` // B_ID
    } `xml:"B"`
}

或者甚至更好——定义单独的 B 结构:

type A struct {
    Id string `xml:"id,attr"` // A_ID
    Name  B `xml:"B"`
}

type B struct {
    Id string `xml:"id,attr"` // B_ID
}

关于xml - 节点 N 的 Go XML Unmarshalling 属性 X,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44244103/

相关文章:

java - 在文本区域中转义 XML 标签

go - 测试函数是否被调用

来自第三方库的Golang解析模板

types - go 中的类型转换问题

java - Jaxb。自定义字段命名行为(camelCase 到 underscore_case)

python - 如何使用 python 中的 ElementTree 将 xml 元素作为带有命名空间的字符串获取?

android - Android中加载和修改xml文件

php - SOAP 设置正确的 xmlns header

debugging - 有什么方法可以获取 'http: response.WriteHeader on hijacked connection' 错误的堆栈跟踪?

go - 长时间运行复制到 bytes.Buffer