来源:自学PHP网 时间:2019-08-07 16:47 作者:小飞侠 阅读:次
[导读] go解析svn log生成的xml格式的文件...
想用go做一个统计svn代码提交的工具,类似statsvn。 今天进展到了用go解析svn log生成的xml格式的文件,在go doc上找了一个Example,已经包括了一些比较典型的解析案例,但是在照葫芦画瓢的时候还是遇到了问题,有个paths下有多个path,每个path都有自己的属性和值,想同时渠道属性和值,真是费了好大的劲。 先上个svn xml 格式 log 的demo。 Example
解析其它的都很顺利,但是解析paths这块的时候遇到了点麻烦。如果 … Paths []Path `xml:”paths”` …, Example type Path struct { Kind string `xml:"kind,attr"` Action string `xml:"action,attr"` Path string `xml:"Path"` } 这样的话,只能取到一个path的值,但是如果使用 Paths []Path `xml:”paths>path”` ,又只能取到Action和Kind的值,path的value取不到。在stackoverflow上又看了几个例子,发现有个,chardata的用法,才知道原来指定value还可以这样用。将Path的struct Path 的xml定义改为 `xml:”,chardata”`,就可以顺利的取到value了。 具体的struct就不写了,如果有需要,可以到我正在开发的GoStatsvn去看看。托管在GitHub。 参考: ①type Name struct { ②Attr(属性)、CharData(字符数据)、Comment(注释)、ProcInst(处理指令)等。这些类型都是XML标准定义的表示,有兴趣可以查看XML的标准对照学习。 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com