我需要能够在XML文档中引用像•
这样的命名HTML实体,而不是Unicode替代•
。我可以控制XML文档的某些部分,例如定义DOCTYPE
,但是在实际的XML中进行查找和替换不是一种选择。我可以通过包含XHTML过渡DOCTYPE来获取
和&
等元素,但我需要手动定义更多元素。我该怎么做?
- 编辑 -
感谢Jim的回答,这就是我最终的结果。这很棒,因为我可以使用XHTML过渡实体,还可以添加我自己的实体:
<!DOCTYPE
html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
[
<!ENTITY bull "•">
<!ENTITY ldquo "“">
<!ENTITY rdquo "”">
... etc ...
]
>
答案 0 :(得分:13)
如果您可以修改XML以包含内联DTD,则可以在那里定义实体:
<!DOCTYPE yourRootElement [
<!ENTITY bull "•">
....
]>
答案 1 :(得分:3)
我不是cetain,但我认为XHTML DTD应该会给你很多实体(253):
同样在w3规范中,还提到了特殊字符等的附加DTD。 http://www.w3.org/TR/xhtml-modularization/dtd_module_defs.html#a_dtd_xhtml_character_entities
但是我找不到特殊字符DTD的实现示例。
按DevNull编辑
这是一个实体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: “</test>