转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
在.NETFramework中表示XML的最佳做法         ★★★★

在.NETFramework中表示XML的最佳做法

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1881 更新时间:2009/4/23 11:18:14
ocument。
  
  返回页首
  将对象转换为 XML
  XML 作为信息交换的通用语言已无所不在,这使其成为要以 XML 表示自身的某些对象的显而易见的选择,这些对象或者是出于序列化目的,或者是为了获得对其他 XML 技术的访问(如使用 XPath 进行查询或使用 XSLT 进行转换)。
  
  当出于序列化目的将对象转换成 XML 时,显然应选择使用 XML Serialization technology in the .NET Framework(英文)。但是,在某些情况下,您对生成的 XML 所需的控制可能比 XmlSerializer 所能提供的更多。在这种情况下,工具包中的 XmlWriter 便是一个很有用的类,因为它使您不再需要该类的结构与所生成的 XML 之间存在一对一映射。下例显示了通过使用 XmlWriter 序列化 Email 类(前面几部分中已经提到)而生成的 XML。
  
  public void Save(XmlWriter writer){
  
   writer.WriteStartDocument();
   writer.WriteStartElement("email");
   writer.WriteStartElement("headers");
  
   writer.WriteStartElement("header");
   writer.WriteElementString("name", "to");
   writer.WriteElementString("value", this.To);
   writer.WriteEndElement(); //标题
  
   writer.WriteStartElement("header");
   writer.WriteElementString("name", "from");
   writer.WriteElementString("value", this.From);
   writer.WriteEndElement(); //标题
  
   writer.WriteStartElement("header");
   writer.WriteElementString("name", "subject");
   writer.WriteElementString("value", this.Subject);
   writer.WriteEndElement(); //标题
  
   writer.WriteStartElement("header");
   writer.WriteElementString("name", "sent");
   writer.WriteElementString("value", XmlConvert.ToString(this.Sent));
   writer.WriteEndElement(); //标题
  
   writer.WriteEndElement(); //标题;
  
   writer.WriteStartElement("body");
   writer.WriteRaw(this.Body);
  
   writer.WriteEndDocument(); //关闭所有打开的标记
   }
  
  这段代码生成下面的 XML 文档
  
  <email>
   <headers>
   <header>
   <name>收件人</name>
   <value>michealb@example.org</value>
   </header>
   <header>
   <name>发件人</name>
   <value>dareo@example.com</value>
   </header>
   <header>
   <name>主题</name>
   <value>Hello World</value>
   </header>
   <header>
   <name>发送时间</name>
   <value>2004-03-05T15:54:13.5446771-08:00</value>
   </header>
   </headers>
   <body><p>Hello World 是我最喜欢的示例应用程序。</p></body>
  </email>
  
  只使用 XmlSerializer 的基本功能将不可能生成上面的 XML 文档。XmlWriter 的另一个优点是它可以从基本目标提取到数据要写入的目标,因此它可以是从磁盘上的文件到内存中的字符串(甚至是 XmlNodeWriter(英文)的 XmlDocument 称谓)的任何内容。
  
  如果要求提供一种方式,使类可以更完全地参与到 XML 世界中(如与XPath 或 XSLT 等 XML 技术进行交互),则该类的最佳选择是实现 IXPathNavigable 接口,并为该类提供 XPathNavigator。这样做的一个示例是 ObjectXPathNavigator,它为那些使您可以在上述对象上执行 XPath 查询或运行 XSLT 转换的任意对象提供了 XML 视图。
  
  准则 如果对象出于序列化目的要以 XML 来表示其自身,当其需要获得的 XML 序列化过程控制比 XmlSerializer 所提供的更多时,则应使用 XmlWriter。如果对象要以 XML 来表示其自身,以便能够完全以 XML 世界成员的身份参与到其中(如允许在此对象上进行 XPath 查询或 XSLT 转换),则此对象应实现 IXPathNavigable 接口。
  
  返回页首
  结论
  在将来的 .NET Framework 版本中,将会更加强调基于光标的 XML API(如由 IXPathNavigable 接口公开的 XPathNavigator)。这类光标将成为与 .NET Framework 中的 XML 进行交互的主要机制。
  
  Dare Obasanjo 是 Microsoft WebData 小组的成员,除其他事务外,该小组还开发了 .NET Framework 的 System.Xml 和 System.Data 命名空间、Microsoft XML 核心服务 (MSXML) 以及 Microsoft 数据访问组件 (MDAC) 中的组件。
  
    

上一页  [1] [2] 


[Web开发]XML与HTML在语法上的主要区别详解  [系统软件]如何让Expat支持中文XML
[VB.NET程序]vb.net 与 XML 的操作  [VB.NET程序]vb.net读写xml(2)--实现datagrid与xml的沟通(原创…
[VB.NET程序]vb.net 读写xml方法(1)  [VB.NET程序][VB.NET+XML]完成简单程序配置
[VB.NET程序]使用Visual Basic操纵XML文档  [VB.NET程序]XML 简单接口 (SAX2)用Visual Basic 实现的示例
[Delphi程序]Delphi 6 XML映象工具  [Delphi程序]Delphi 6 XML数据绑定
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台