小编Vic*_*gin的帖子

在Go中解析XML时处理命名空间

我试图解析一个片段,如果在Go中的XML:

package main

import (
    "encoding/xml"
    "fmt"
)

type XML struct {
    Foo string `xml:"foo"`
}

func main() {
    rawXML := []byte(`
<xml>
  <foo>A</foo>
  <ns:foo>B</ns:foo>
</xml>`)

    x := new(XML)
    xml.Unmarshal(rawXML, x)
    fmt.Printf("foo: %s\n", x.Foo)
}
Run Code Online (Sandbox Code Playgroud)

这输出:

foo: B
Run Code Online (Sandbox Code Playgroud)

虽然我预计它会产生:

foo: A
Run Code Online (Sandbox Code Playgroud)

如何获取第一个foo标记的内容(即没有名称空间的标记)?

xml xml-namespaces go

3
推荐指数
1
解决办法
2258
查看次数

标签 统计

go ×1

xml ×1

xml-namespaces ×1