gpt4 book ai didi

xml - Golang - 如何将 XML 文件的一部分提取为字符串?

转载 作者:IT王子 更新时间:2023-10-29 01:17:44 26 4
gpt4 key购买 nike

我的 XML 看起来像这样:

<a>
<b>
<c>
<d>TEXT</d>
</c>
</b>
</a>

我知道如何通过 xml.Unmarshal 函数分离这段代码,但是有什么方法可以仅在一定深度上执行 Unmarshal 操作?例如,如果我想获取一个字符串“TEXT”并将其传递给另一个函数?我试着给一个子字符集对象,但它仍然试图解析 XML 的其余部分...

最佳答案

我认为这就是您要问的(也请考虑您的评论)。

package main

import (
"encoding/xml"
"fmt"
)

func main() {
type Result struct {
Value string `xml:"b>c>d"`
}
v := Result{"none"}

data := `
<a>
<b>
<c>
<d>TEXT</d>
</c>
</b>
</a>
`
err := xml.Unmarshal([]byte(data), &v)
if err != nil {
fmt.Printf("error: %v", err)
return
}

fmt.Printf("Value: %v\n", v.Value)
}

输出:

Value: TEXT

更新:在 lanZG 的评论之后

func main() {
type InnerResult struct {
Value string `xml:",innerxml"`
}

type Result struct {
B InnerResult `xml:"b"`
}
v := Result{InnerResult{"none"}}

data := `
<a>
<b>
<c>
<d>TEXT</d>
</c>
</b>
</a>
`
err := xml.Unmarshal([]byte(data), &v)
if err != nil {
fmt.Printf("error: %v", err)
return
}

fmt.Printf("Value: %v\n", v.B.Value)
}

输出:

Value: 
<c>
<d>TEXT</d>
</c>

关于xml - Golang - 如何将 XML 文件的一部分提取为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27527561/

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