作者:手机用户2502923513 | 来源:互联网 | 2023-05-20 19:58
Go无法使用声明的实体解析正确的xml文件,不断收到此错误:
错误:第47行的XML语法错误:无效的字符实体&n;
该行&n;
和实体定义为
以下是Go中的程序:http://play.golang.org/p/94_60srVne
1> twotwotwo..:
如果您创建了一个实体Decoder
并且弄乱了它的Entity
地图,则可以传入实体.我怀疑这个软件包实际上并没有解析DTD,只是来自于xml.go ; 我看到一条评论说它累积了调用者的实体,但没有任何东西本身设置条目d.Entity
.
(encoding/xml
即使因为有一个内置的共享 HTML实体映射,安全地提供它也会很棘手.为一个doc更新它会影响其他人的解析.)
使用自定义实体创建一个解码器的文书工作比普通实体更多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链接,其中包含Entity
技巧和一些输出代码,用于将对象显示为JSON.