gpt4 book ai didi

xml - 使用 golang 解析 tei XML

转载 作者:IT王子 更新时间:2023-10-29 02:24:02 25 4
gpt4 key购买 nike

我需要用 golang 解析一个 tei XML 文件。我尝试使用 encoding/xml unmarshaller。这是示例: http://play.golang.org/p/h0k-4IjngY

问题:

  1. 即使 tei 文件无效且 xml 有效,该示例也不会返回任何内容。如果我删除第 23 行 <TEI> (所以 xml 不再有效),该示例打印了一些内容。
  2. 如何让 Line 构造一个包含 <l> 内容的字符串?元素?
  3. 在 Page 结构中,我需要 n 的值属性,我该如何实现?

解码是解析此类文件的正确方法还是 nokogiri 是更好的解决方案?

谢谢

最佳答案

使用 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 上尝试修改后的代码.

关于xml - 使用 golang 解析 tei XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28811899/

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