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

dpa*_*ant 2 xml xslt dtd entity

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

!DOCTYPE article SYSTEM "../../pubmedref/archivearticle.dtd" [
   <!ENTITY bull "&#8226;">
   <!ENTITY copy "&#169;">
   ... a long list ...
]>
Run Code Online (Sandbox Code Playgroud)

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

FWIW,我试过引用一个.ent文件,但它不适用于任何浏览器.

Dan*_*ley 5

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

XML文件

<!DOCTYPE article SYSTEM "../../pubmedref/archivearticle.dtd" [
<!ENTITY % ents SYSTEM "../../pubmedref/entities.ent">
%ents;
]>
<article>...</article>
Run Code Online (Sandbox Code Playgroud)

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

<!ENTITY bull "&#8226;">
<!ENTITY copy "&#169;">
Run Code Online (Sandbox Code Playgroud)

但是,大多数浏览器都不会解析外部实体引用,因此您不得不将实体声明直接放在内部子集中(在doctype声明之间[]之中).