gpt4 book ai didi

转到 XML 错误 : invalid character entity

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

Go 无法解析带有已声明实体的正确 xml 文件,不断出现此错误:

error: XML syntax error on line 47: invalid character entity &n;

行是<pos>&n;</pos>实体定义为 <!ENTITY n "noun (common) (futsuumeishi)">

这是 Go 中的程序:http://play.golang.org/p/94_60srVne

最佳答案

如果您创建了一个Decoder 并弄乱了它的Entity 映射,您就可以传入实体。我怀疑这个包实际上并没有解析 DTD,只是通过四处寻找 xml.go ;我看到一条评论说它为调用者积累了实体,但它本身没有在 d.Entity 中设置条目。

(encoding/xml 安全地提供它会很棘手,甚至,因为有一个内置的 shared HTML 实体映射。为一个文档更新它会影响其他人的解析。)

与常规 xml.Unmarshal 相比,使用自定义实体创建解码器需要更多的文书工作,但不会太多:

func main() {
jmd := JMdict{}

d := xml.NewDecoder(bytes.NewReader([]byte(str)))
d.Entity = map[string]string{
"n": "(noun)",
}
err := d.Decode(&jmd)
if err != nil {
fmt.Printf("error: %v", err)
return
}
fmt.Println(jmd)
}

这是一个 Playground link使用 Entity 技巧和一些输出代码将对象显示为 JSON。

关于转到 XML 错误 : invalid character entity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28662417/

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