如何强制Go的标准xml解析器读取DTD实体

时间:2015-01-23 10:36:06

标签: xml go dtd

我正在使用go的encoding/xml包来解析XML文件。在解析文件时,这是我得到的错误:

XML syntax error on line 16: invalid character entity ü

但是xml文件引用了dtd:

<!DOCTYPE dblp SYSTEM "dblp.dtd">

该dtd本身包含该实体的定义:

    <!ENTITY uuml    "&#252;" ><!-- small u, dieresis or umlaut mark -->

有没有办法强制Go的xml解析器解析DTD,我是否遗漏了某些地方或者我注定要使用第三方xml解析器?

1 个答案:

答案 0 :(得分:1)

可能不是您想听到的答案......

您可以使用Entity的{​​{1}}字段。不幸的是,我不知道从dtd生成这样的实体映射的自动方法。但这应该直接从dtd中提取。如果dtd没有改变,这对http://golang.org/pkg/encoding/xml/#Decoder来说可能是个不错的任务。

如果实体的列表是固定的(并且足够小),我会硬编码实体地图。

相关问题