XML入门的常见问题(三)

如何加载有外国和特殊字符的文档? 
  文档可以包含外国字符,例如: 

  foreign characters (úóí?) 

  例如 磲 的外国字符必须在前面加上 escape 序列。外国字符可以是 UTF-8 编码或用不同编码指定,如下所示: 

  foreign characters (磲) 

  现在可以正确加载 XML 了。 
  其他字符是保留在 XML 中的,并且需要以不同的方式处理。下面的 XML: 

  This &;amp; that
  产生如下错误:
  此处不允许有空格。
  行 0000001: This &;amp; that
  位置 0000012: ----------^ 

  此处 &;amp; 是 XML 句法结构的一部分,如果它仅仅放在 XML 数据源内部,那么不能解释为 &;amp;。您需要替换称为“实体”的特殊字符序列。 
  This &;amp; that
  下面的字符需要相应的实体: 

  < <
  &;amp; &;amp;
  > >
  " "
  ' &;amp;apos; 

  引号字符被用作标记中属性值的定界符,因此通常不能在属性值的内部使用。例如,下面的内容将返回错误: 
  此处的单引号既用作属性定界符,又在属性值自身中。为了纠正这个问题,可以将属性定界符换成双引号: 
  或者可以将单引号转义为实体 &;amp;apos; 
  上述两种方式都将通过 XML 对象模型中的 getAttribute 方法返回属性值 John's Stuff。同样,对于双引号,您可以使用实体
  "。
  也可以通过将文本放在 CDATA 节中来处理元素内容中的特殊字符。下面的内容是正确的: 
  在本例子中,XML 对象模型将 CDATA 节点显示 xml 节点的子节点,它将返回字符串 
  This &;amp; that is just "text" content.
  作为 nodeValue。 
  如何在 Visual Studio 6.0 C  中使用 MSXML COM 组件? 
  在 Visual C  6.0 中使用 MSXML COM 组件M的最简便方式是使用 #import 指令: 
  #import "msxml.dll" named_guids no_namespace#import "msxml.dll" named_guids no_namespace
  它定义了所有 IXML* 接口和接口 ID,从而可以在应用程序中使用它们了。也可以从 INETSDK 获取 MSXML 类型库和头文件(英文),以及包含类 IIDs 的 uuid.lib。 
  如何在 XML 中使用 HTML 实体? 
  下面的 XML 包含 HTML 实体: 

  Copyright ? 2000, Microsoft Inc, All rights reserved. 

  它产生下列错误: 

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

  这是因为 XML 只有五个内置实体。关于内置实体的详细信息,请参阅如何加载有外国和特殊字符的文档?。 
  要使用 HTML 实体,需要用 DTD 定义它们。有关 DTD 的详细信息,请参阅 W3C XML 建议(英文)。要使用该 DTD,请将它直接包括在 DOCTYPE 标记中,如下所示: 

  Copyright ? 2000, Microsoft Inc, All rights reserved. 
 
  要加载它,需要关闭 IXMLDOMDocument 接口的 validateOnParse 属性。请尝试将它粘贴到“Validator 测试页”中,关闭 DTD 验证,然后单击“验证”。请注意文档将加载,并且版权字符将显示在 validator 页面的末尾的 DOM 树中。 
  如果已经完成了 DTD 验证,那么必须将作为参数实体的 HTML 实体包括在现有的 DTD 中,如下所示: 

  %HTMLENT;
  %HTMLENT; 

  它将定义所有 HTML 实体,以便在 XML 文档中使用它们。 
  在元素内容中如何处理空白字符? 
  XML DOM 有三种访问元素文本内容的方式: 
  属性 行为 
  nodeValue 按照原始的 XML 源中指定的那样,返回 TEXT、CDATA、COMMENT 和 PI 节点上的原始文本内容(包括空白字符)。对于 ELEMENT 节点和 DOCUMENT 本身,则返回空值。 
  数据 与 nodeValue 相同 
  文本 重复连接指定子树中的多个 TEXT 和 CDATA 节点并返回组合结果。




(作者:AngelGavin 出处:CSDN)

 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [XML] 的这些文章也感兴趣:

使用xmlhttp为网站增加域名查询功能
利用ASP和XML制作菜单导航系统
XML学习:应当如何使用XML语言
为何XML对Web服务很重要
XML和数据库
XML学习起步
对xml操作的主要方法
XML介绍系列(6)
W3C有意推广XML新标准 为兼容性吵翻了天
技巧:开发本地化的XML格式