我需要使用golang解析tei XML文件。我尝试使用encoding / xml unmarshaller。这是一个例子: http://play.golang.org/p/h0k-4IjngY
问题:
<TEI>
(因此xml不再有效),该示例将打印一些内容。<l>
元素?n
属性的值,我该如何实现?解组正确解析这些文件或nokogiri的方法会是更好的解决方案吗?
由于
答案 0 :(得分:0)
使用xml.Unmarshal()读取此XML非常好。
问题是XML结构如下:
<TEI>
<text>
<sp>
</sp>
<sp>
</sp>
</text>
</TEI>
你的Go结构如下:
Page
[]Speak
缺少一个图层。您的Page
可能与<TEI>
或<text>
元素匹配,但不能同时匹配。如果您删除了<TEI>
元素,则它适用于您,因为Page
可以匹配<text>
及其内容。
<强>解决方案:强>
添加另一个这样的包装:
type Text struct {
Txt Page `xml:"text"`
}
当然解析这种类型的值:
var p Text
err := xml.Unmarshal([]byte(data), &p)
在Go Playground上尝试修改后的代码。