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

标签 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 解析器?

最佳答案

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

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

如果实体列表是固定的(并且足够小),我将对实体映射进行硬编码。

关于xml - 如何强制 Go 的标准 xml 解析器读取 DTD 实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28107960/

相关文章:

c# - XML 文件 C# 中的错误保存

xml - Solr:使用 DataImportHandler 通过 XSLT 处理进行 XML 导入

go - 如何恢复我用 gorm deletedAt 软删除的数据

xml - 将属性类型声明为 XML 中的实体时出现验证错误

java - 如何在log4j.xml中使用DTD ENTITY外部引用

android - 我可以使用相同的“radioButton_states”drawable 并创建一个每个按钮具有不同背景颜色的 radioGroup 吗?

xml - 如何让 JDOM/XPath 忽略 namespace ?

string - Golang 随机 Sha256

email - 如何使用带有 HTML 格式正文的 Go 发送电子邮件?

html - 在 HTML 和 CSS 中实现完全对齐 : works in limited-quirks mode but no-quirks mode messes up the height