首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何强制Go的标准xml解析器读取DTD实体

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

Stack Overflow用户
提问于 2015-01-23 10:36:05
回答 1查看 1.4K关注 0票数 2

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

代码语言:javascript
运行
复制
XML syntax error on line 16: invalid character entity ü

但是xml文件引用了dtd:

代码语言:javascript
运行
复制
<!DOCTYPE dblp SYSTEM "dblp.dtd">

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

代码语言:javascript
运行
复制
    <!ENTITY uuml    "&#252;" ><!-- small u, dieresis or umlaut mark -->

有没有办法强迫Go的xml解析器解析DTD,我是在某个地方遗漏了什么,还是注定要使用第三方xml解析器?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-23 10:55:38

可能不是你想听到的答案..。

您可以使用Entity-field of http://golang.org/pkg/encoding/xml/#Decoder。不幸的是,我不知道从dtd自动生成这样的实体映射的方法。但这应该是从dtd中直接提取出来的。如果dtd不改变,这对go generate来说可能是一项不错的任务。

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28107960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档