如何在外部文件中将转义字符声明为 DTD 实体并导入 XML 文件

How to declare escape character as DTD Entities in external file and import in XML files

在一个 web 项目中,我有很多 XML 包含非转义字符的文件。我将这些字符声明为 DTD 实体,并在每个 XML 文件中包含内部声明列表,如下所示:

!DOCTYPE article SYSTEM "../../pubmedref/archivearticle.dtd" [
   <!ENTITY bull "&#8226;">
   <!ENTITY copy "&#169;">
   ... a long list ...
]>

有什么方法可以将这些声明放在外部文件中并将其导入 XML 文件中? XML 文件使用 XSLT 呈现给浏览器。

FWIW,我试过引用 .ent 文件,但它在任何浏览器上都不起作用。

通常您会使用参数实体...

XML 文件

<!DOCTYPE article SYSTEM "../../pubmedref/archivearticle.dtd" [
<!ENTITY % ents SYSTEM "../../pubmedref/entities.ent">
%ents;
]>
<article>...</article>

实体文件(你可以有多个文件)

<!ENTITY bull "&#8226;">
<!ENTITY copy "&#169;">

但是,大多数浏览器不会解析外部实体引用,因此您只能将实体声明直接放在内部子集中(文档类型声明中的 [] 之间)。