以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 XML基础 』 (http://bbs.xml.org.cn/list.asp?boardid=1) ---- 加载有外国和特殊字符的文档 (http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=10036) |
-- 作者:卷积内核 -- 发布时间:9/16/2004 2:20:00 PM -- 加载有外国和特殊字符的文档 加载有外国和特殊字符的文档 文档可以包含外国字符,例如: 其他字符是保留在 XML 中的,并且需要以不同的方式处理。下面的 XML: This & that 此处的单引号既用作属性定界符,又在属性值自身中。为了纠正这个问题,可以将属性定界符换成双引号: 或者可以将单引号转义为实体 ' 上述两种方式都将通过 XML 对象模型中的 getAttribute 方法返回属性值 John's Stuff。同样,对于双引号,您可以使用实体 在本例子中,XML 对象模型将 CDATA 节点显示 xml 节点的子节点,它将返回字符串 This & that is just "text" content. 在 Visual C++ 6.0 中使用 MSXML COM 组件的最简便方式是使用 #import 指令: #import "msxml.dll" named_guids no_namespace#import "msxml.dll" named_guids no_namespace 如何在 XML 中使用 HTML 实体? 下面的 XML 包含 HTML 实体: 要使用 HTML 实体,需要用 DTD 定义它们。有关 DTD 的详细信息,请参阅 W3C XML 建议(英文)。要使用该 DTD,请将它直接包括在 DOCTYPE 标记中,如下所示:
要加载它,需要关闭 IXMLDOMDocument 接口的 validateOnParse 属性。请尝试将它粘贴到“Validator 测试页”中,关闭 DTD 验证,然后单击“验证”。请注意文档将加载,并且版权字符将显示在 validator 页面的末尾的 DOM 树中。 如果已经完成了 DTD 验证,那么必须将作为参数实体的 HTML 实体包括在现有的 DTD 中,如下所示: 在元素内容中如何处理空白字符? XML DOM 有三种访问元素文本内容的方式: 属性 行为 nodeValue 按照原始的 XML 源中指定的那样,返回 TEXT、CDATA、COMMENT 和 PI 节点上的原始文本内容(包括空白字符)。对于 ELEMENT 节点和 DOCUMENT 本身,则返回空值。 数据 与 nodeValue 相同 文本 重复连接指定子树中的多个 TEXT 和 CDATA 节点并返回组合结果。 |
-- 作者:卷积内核 -- 发布时间:9/16/2004 2:27:00 PM -- 注意: 空白字符包括新行、tab 和空格。 nodeValue 属性通常返回原始文档中的内容,与文档如何加载和当前 xml:space 范围无关。 文本属性连接指定子树中的所有文本并扩展实体。这与文档如何加载、preserveWhiteSpace 开关的当前状态和当前 xml:space 范围有关,请看如下所示: preserveWhiteSpace = true when the document is loaded preserveWhiteSpace=true xml:space=preserve 保留
preserveWhiteSpace=true xml:space=preserve 半保留 状态 返回值 请注意“半保留”将规范化不重要的空白字符,例如,新行和 tab 字符将退化为单个空格。如果更改 xml:space 属性和 preserveWhiteSpace 开关,那么文本属性将返回相应的不同值。 CDATA and xml:space="preserve" subtree boundaries "Jane Smith "
|
-- 作者:卷积内核 -- 发布时间:9/16/2004 2:39:00 PM -- 在此, 和 标记之间的不重要的空白字符将包括在内,与 CDATA 节点的内容无关。如果用下列内容代替 CDATA,那么将返回相同结果: Smith 实体是作为 DTD 的一部分加载和分析的,并且显示在 DOCTYPE 节点下。它们不一定要有任何 xml:space 范围。例如: 给定文档中引用的每个 ENTITY 的实例通常都有相同的树。 如果实体必须绝对保留空白字符,那么它必须在自己内部指定自己的 xml:space 属性,或者文档 preserveWhiteSpace 开关必须设置为 true。 如何处理属性中的空白字符? 有几种方式可以访问属性值。IXMLDOMAttribute 接口有 nodeValue 属性,它等价于作为 Microsoft 扩展的 nodeValue 和 text 属性。这些属性返回: 属性 返回的文本 半规范化 全规范化 在此半规范化代表将新行和 tab 字符转换为空格,但是多个空格不会退化为一个空格。 |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
46.875ms |