gpt4 book ai didi

xml-parsing - 如何用冒号解码 XML 属性?

转载 作者:IT老高 更新时间:2023-10-28 13:10:27 24 4
gpt4 key购买 nike

我正在使用的一些 SVG/XML 文件的属性名称中有破折号和冒号 - 例如:

<g>
<a xlink:href="http://example.com" data-bind="121">...</a>
</g>

我试图弄清楚如何使用 golang 解码这些属性的encoding/xml包裹。虽然虚线属性有效,但带有冒号的属性无效:

[ See here for a live example ]

package main

import (
"encoding/xml"
"fmt"
)

var data = `
<g>
<a xlink:href="http://example.com" data-bind="121">lala</a>
</g>
`

type Anchor struct {
DataBind int `xml:"data-bind,attr"` // this works
XlinkHref string `xml:"xlink:href,attr"` // this fails
}

type Group struct {
A Anchor `xml:"a"`
}

func main() {
group := Group{}
_ = xml.Unmarshal([]byte(data), &group)

fmt.Printf("%#v\n", group.A)
}

这些是 seemingly legal属性名称;知道如何提取 xlink:href 吗?谢谢。

最佳答案

您的示例片段并不完全正确,因为它不包含 XML namespace xlink: 前缀的绑定(bind)。你可能想要的是:

<g xmlns:xlink="http://www.w3.org/1999/xlink">
<a xlink:href="http://example.com" data-bind="121">lala</a>
</g>

您可以使用命名空间 URL 解码此属性:

XlinkHref string `xml:"http://www.w3.org/1999/xlink href,attr"`

Here是带有命名空间修复的示例程序的更新副本。

关于xml-parsing - 如何用冒号解码 XML 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18934327/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com