我正在使用go的encoding/xml
包来解析XML文件。在解析文件时,这是我得到的错误:
XML syntax error on line 16: invalid character entity ü
但是xml文件引用了dtd:
<!DOCTYPE dblp SYSTEM "dblp.dtd">
该dtd本身包含该实体的定义:
<!ENTITY uuml "ü" ><!-- small u, dieresis or umlaut mark -->
有没有办法强制Go的xml解析器解析DTD,我是否遗漏了某些地方或者我注定要使用第三方xml解析器?
答案 0 :(得分:1)
可能不是您想听到的答案......
您可以使用Entity
的{{1}}字段。不幸的是,我不知道从dtd生成这样的实体映射的自动方法。但这应该直接从dtd中提取。如果dtd没有改变,这对http://golang.org/pkg/encoding/xml/#Decoder
来说可能是个不错的任务。
如果实体的列表是固定的(并且足够小),我会硬编码实体地图。