【发布时间】:2018-12-17 22:50:16
【问题描述】:
我开始使用 Go,发现解析 html 或 xml 文档本身并没有强大的工具(如果没有,请原谅我的无知)。
事实是我有以下地图(我使用 github.com/clbanning/mxj 将 xml 转换为地图)。这是一份 XML 和 HTML Clover 报告。
我想要的是访问不同的值:XML pastebin
我的代码:
xmlFile, err := os.Open(dir + "\\clover.xml")
if err != nil {
fmt.Println("Error opening file:", err)
return
}
b, _ := ioutil.ReadAll(xmlFile)
defer xmlFile.Close()
fmt.Println("xmldata:", string(b))
// get all image tag values - []interface{}
mapvalue, merr := mxj.NewMapXml(b)
if merr != nil {
fmt.Println("merr:", merr.Error())
return
}
即使通过以下方式我也可以细分它:
sources, err := mapvalue.ValuesForKey("metrics")
if err != nil {
fmt.Println("err:", err.Error())
return
}
for i, src := range sources {
fmt.Println(i, src)
}
fmt.Println(sources[0])
正是我需要的那个。但现在我无法访问每一个内在价值。
map[-loc:459 -statements:71 -coveredmethods:14 -ncloc:307 -files:12 -conditionals:6 -coveredelements:45 -packages:8 -elements:110 -complexity:37 -classes:12 -coveredconditionals:1 -coveredstatements:30 -methods:33]
有没有更简单的方法来处理我在本地拥有的 XML 和 html?
我将 XML 添加到映射结果:pastebin
【问题讨论】:
-
我在 Google 中获得的 golang xml/html 解析器的第一个结果分别是golang.org/pkg/encoding/xml(标准库中的
encoding/xml)和godoc.org/golang.org/x/net/html(net/htmlsubrepo)。
标签: go xml-parsing html-parsing