如何在Go中使用XPath从XML中获取值

前端之家收集整理的这篇文章主要介绍了如何在Go中使用XPath从XML中获取值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
看着 go xml package我找不到这样的可能性.
Go只允许定义结构树,将它们映射到XML树并使用xml.NewDecoder(myXmlString).Decode(myStruct)进行反序列化.

即使我定义了所需的Go结构树,我仍然无法使用XPath查询该树.

C#具有方便的功能SelectSingleNode,允许通过指定XPath而不复制C#类中的整个树结构从XML树中选择值.

Go有类似的可能吗?
如果不是那么最简单的方法来实现它(可能重用xml包)?

即使不是xpath,您可以使用本机 go xml encoder软件包从XML中读取值.您将使用xml.Unmarshal()函数. Here是一个去玩的例子.
package main

import "fmt"
import "encoding/xml"

func main() {
    type People struct {
        Names []string `xml:"Person>FullName"`
    }

    data := `
        <People>
            <Person>
                <FullName>Jerome Anthony</FullName>
            </Person>
            <Person>
                <FullName>Christina</FullName>
            </Person>
        </People>
    `

    v := People{Names: []string{}}
    err := xml.Unmarshal([]byte(data),&v)
    if err != nil {
        fmt.Printf("error: %v",err)
        return
    }
    fmt.Printf("Names of people: %q",v)
}
原文链接:https://www.f2er.com/xml/292978.html

猜你在找的XML相关文章