新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   >>中国XML论坛<<     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 关于 XML 的一般性技术讨论,提供 XML入门资料 和 XML教程
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 XML基础 』 → 加载有外国和特殊字符的文档 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 7586 个阅读者浏览上一篇主题  刷新本主题   平板显示贴子 浏览下一篇主题
     * 贴子主题: 加载有外国和特殊字符的文档 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     卷积内核 帅哥哟,离线,有人找我吗?
      
      
      威望:8
      头衔:总统
      等级:博士二年级(版主)
      文章:3942
      积分:27590
      门派:XML.ORG.CN
      注册:2004/7/21

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给卷积内核发送一个短消息 把卷积内核加入好友 查看卷积内核的个人资料 搜索卷积内核在『 XML基础 』的所有贴子 访问卷积内核的主页 引用回复这个贴子 回复这个贴子 查看卷积内核的博客楼主
    发贴心情 加载有外国和特殊字符的文档

    加载有外国和特殊字符的文档

      文档可以包含外国字符,例如:


      foreign characters (úóí?)  


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


      foreign characters (磲)  


      现在可以正确加载 XML 了。

      其他字符是保留在 XML 中的,并且需要以不同的方式处理。下面的 XML:


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


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

      This & that
      下面的字符需要相应的实体:


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


      引号字符被用作标记中属性值的定界符,因此通常不能在属性值的内部使用。例如,下面的内容将返回错误:

      此处的单引号既用作属性定界符,又在属性值自身中。为了纠正这个问题,可以将属性定界符换成双引号:

      或者可以将单引号转义为实体 &apos;

      上述两种方式都将通过 XML 对象模型中的 getAttribute 方法返回属性值 John's Stuff。同样,对于双引号,您可以使用实体
      "。
      也可以通过将文本放在 CDATA 节中来处理元素内容中的特殊字符。下面的内容是正确的:

      在本例子中,XML 对象模型将 CDATA 节点显示 xml 节点的子节点,它将返回字符串

      This & that  is just "text" content.
      作为 nodeValue。
    如何在 Visual Studio 6.0 C++ 中使用 MSXML COM 组件?

      在 Visual C++ 6.0 中使用 MSXML COM 组件的最简便方式是使用 #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 节点并返回组合结果。


       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    事业是国家的,荣誉是单位的,成绩是领导的,工资是老婆的,财产是孩子的,错误是自己的。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/9/16 14:20:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XML基础 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/17 6:15:42

    本主题贴数3,分页: [1]

     *树形目录 (最近20个回帖) 顶端 
    主题:  加载有外国和特殊字符的文档(3141字) - 卷积内核,2004年9月16日
        回复:  在此, 和 标记之间的不重要的空白字符将包括在内,与 CDATA 节点的内容无关。如果用下列内容代..(1781字) - 卷积内核,2004年9月16日
        回复:  注意: 空白字符包括新行、tab 和空格。   nodeValue 属性通常返回原始文档中的内..(2085字) - 卷积内核,2004年9月16日

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