以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML基础 』  (http://bbs.xml.org.cn/list.asp?boardid=1)
----  如何在 XML 中使用 HTML 实体?  (http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=8915)


--  作者:diy930
--  发布时间:7/21/2004 1:48:00 PM

--  如何在 XML 中使用 HTML 实体?
下面的 XML 包含 HTML 实体:

<copyright>Copyright &copy; 2000, Microsoft Inc, All rights reserved.</copyright>

它产生下列错误:

引用未定义的实体 'copy'。
行: 1, 位置:23, 错误码:0xC00CE002
<copyright>Copyright &copy; 2000, ...
----------------------^

这是因为 XML 只有五个内置实体。关于内置实体的详细信息,请参阅如何加载有外国和特殊字符的文档?。

要使用 HTML 实体,需要用 DTD 定义它们。有关 DTD 的详细信息,请参阅 W3C XML 建议(英文)。要使用该 DTD,请将它直接包括在 DOCTYPE 标记中,如下所示:
<!DOCTYPE foo SYSTEM "http://msdn.microsoft.com/xml/general/htmlentities.dtd">
<copyright>Copyright &copy; 2000, Microsoft Inc, All rights reserved.</copyright>
要加载它,需要关闭 IXMLDOMDocument 接口的 validateOnParse 属性。请尝试将它粘贴到“Validator 测试页”中,关闭 DTD 验证,然后单击“验证”。请注意文档将加载,并且版权字符将显示在 validator 页面的末尾的 DOM 树中。

如果已经完成了 DTD 验证,那么必须将作为参数实体的 HTML 实体包括在现有的 DTD 中,如下所示:
<!ENTITY % HTMLENT SYSTEM "http://msdn.microsoft.com/xml/general/htmlentities.dtd">
%HTMLENT;<!ENTITY % HTMLENT SYSTEM "http://msdn.microsoft.com/xml/general/htmlentities.dtd">
%HTMLENT;
它将定义所有 HTML 实体,以便在 XML 文档中使用它们。


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
31.250ms