如何在有效的XML文档中定义HTML实体引用?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (51)

我需要能够引用命名的HTML实体,比如•而不是Unicode替代•在XML文档中。我控制着XML文档的某些部分,例如定义DOCTYPE,但是在实际的XML中进行查找和替换并不是一种选择。我可以得到一些元素 &通过包含XHTML过渡DOCTYPE,但我需要手动定义更多。我该怎么做?

我目前的方法是:

<!DOCTYPE
   html
   PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
   [
      <!ENTITY bull  "&#8226;">
      <!ENTITY ldquo "&#8220;">
      <!ENTITY rdquo "&#8221;">
      ... etc ...
   ]
>
提问于
用户回答回答于

如果可以修改XML以包含内联DTD,则可以在其中定义实体:

<!DOCTYPE yourRootElement [
    <!ENTITY bull "&#8226;">
    ....
]>
用户回答回答于

下面是一个非常通用的实体DTD模块的实现示例。要实现,只需添加指向模块的参数实体。

<?xml version="1.0"?>
<!DOCTYPE test [
<!ELEMENT test (#PCDATA)>
<!ENTITY % xhtml-special SYSTEM "xhtml-special.ent">
%xhtml-special;
]>
<test>Here is a left double quote: &ldquo;</test>

扫码关注云+社区