我有一个 XML 字符串
str := "<data><node><value>Foo</value></node></data>"
我需要将值替换为另一个值 (Bar
)。给定路径
"data.node.value"
Go 有没有办法找到并替换那个值?所以调用 Replace(str, "data.node.value","Bar")
<data><node><value>Bar</value></node></data>
最佳答案
我认为这不可能,因为您只有一个字符串。 你需要
- 将 XML 解码为结构,
- 然后操作结构
- 然后将其编码回字符串。
像这样:
package main
import (
"encoding/xml"
"fmt"
)
type Data struct {
Node Node `xml:"node"`
}
type Node struct {
Value string `xml:"value"`
}
func main() {
str := "<data><node><value>Foo</value></node></data>"
var d Data
xml.Unmarshal([]byte(str), &d) // unmarshal it
d.Node.Value = "Bar" // manipulate the struct
xmlout, _ := xml.Marshal(d) // re-marshal it
fmt.Println("result: ", string(xmlout))
}
关于xml - 遍历 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26597787/