.NET中书写XML的一种简单方法

2016-02-19 21:42 11 1 收藏

下面图老师小编跟大家分享一个简单易学的.NET中书写XML的一种简单方法教程,get新技能是需要行动的,喜欢的朋友赶紧收藏起来学习下吧!

【 tulaoshi.com - Web开发 】

  XML是一项热门的技术。它之所以能够引起人们的兴趣,一个主要的原因在于它十分的简单,人们可以很容易地理解和使用它。每一个程序员都能轻易地看懂一个XML文件,理解它包含的内容。

  .NET中包含了很多支持XML的类,这些类使得程序员使用XML编程就如同理解XML文件一样简单。在这篇文章中,我将给出这样的一个类的使用示例,这个类就是XmlTextWriter类。

  XmlTextWriter类允许你将XML写到一个文件中去。这个类包含了很多方法和属性,使用这些属性和方法可以使你更容易地处理XML。为了使用这个类,你必须首先创建一个新的XmlTextWriter对象,然后你可以将XML片断加入到这个对象中。这个类中包含了不少的方法用于将各种类型的XML元素添加到XML文件中,下表给出了这些方法的名字和描述情况:

  方法
   描述
   
  WriteStartDocument
   书写版本为“1.0”的 XML 声明
   
  WriteEndDocument
   关闭任何打开的元素或属性
   
  Close
   关闭流
   
  WriteDocType
   写出具有指定名称和可选属性的 DOCTYPE 声明
   
  WriteStartElement
   写出指定的开始标记
   
  WriteEndElement
   关闭一个元素
   
  WriteFullEndElement
   关闭一个元素,并且总是写入完整的结束标记
   
  WriteElementString
   写出包含字符串值的元素
   
  WriteStartAttribute
   书写属性的起始内容
   
  WriteEndAttribute
   关闭上一个 WriteStartAttribute 调用
   
  WriteRaw
   手动书写原始标记
   
  WriteString
   书写一个字符串
   
  WriteAttributeString
   出具有指定值的属性
   
  WriteCData
   写出包含指定文本的 ![CDATA[...]] 块
   
  WriteComment
   写出包含指定文本的注释 !--...--
   
  WriteWhiteSpace
   写出给定的空白
   
  WriteProcessingInstruction
   写出在名称和文本之间带有空格的处理指令,如下所示:?name text?

  如果你对于XML十分熟悉,那么你一定能很好的理解上面的这些方法。下面我们将给出一个例子,在这个例子中,我们将先创建一个文档,添加一些元素,然后关闭这个文档。添加了元素后你还可以添加子元素,属性和其他内容。下面的代码就是这样的一个例子,它创建了一个文件名为title的XML文件。

  using System;
  using System.IO;
  using System.Xml;
  public class Sample
  {
    public static void Main()
    {
       XmlTextWriter writer = new XmlTextWriter("titles.xml", null);
       //写入根元素
       writer.WriteStartElement("items");
       //加入子元素
       writer.WriteElementString("title", "Unreal Tournament 2003");
       writer.WriteElementString("title", "C&C: Renegade");
       writer.WriteElementString("title", "Dr. Seuss's ABC");
       //关闭根元素,并书写结束标签
       writer.WriteEndElement();
       //将XML写入文件并且关闭XmlTextWriter
       writer.Close(); 
    }
  }
  如果你编译并且执行上面的代码,你将创建这个XML文件,文件中包含如下内容:
  items
      titleUnreal Tournament 2003/title
      titleC&C: Renegade/title
      titleDr. Seuss's ABC/title
  /items

  上面的代码创建了一个名为writer的XmlTextWriter对象。当这个对象被创建时,它被关联到一个名为titles.xml的文件。接着,程序创建了一个叫做items的根属性,WriteStartElement方法创建了这个属性的开始标签。接下来,程序调用了WriteElementString方法创建了三个子元素。从上面的代码你还可以看到,这个方法使用第一个参数(在上面的程序中是title)作为元素的标签;使用第二个参数作为元素的值。当你添加了所有的元素后,你需要关闭根元素。这时你可以调用WriteEndElement方法关闭那个最近被打开的元素;在本例中,这个最近被打开的元素就是根元素。当所有的数据都已经写好,根元素也已经关闭时,你可以将信息传送给你的XmlTextWriter。这意味着这时候你可以调用Close方法关闭它了。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  上面的代码相对十分的简单,下面我们看一个使用了XmlTextWriter类中更多方法,功能更加完善的例子。

  using System;
  using System.IO;
  using System.Xml;
  public class Sample
  {
    public static void Main()
    {
       XmlTextWriter writer = new XmlTextWriter("myMedia.xml", null);
       //使用自动缩进便于阅读
       writer.Formatting = Formatting.Indented;
       //书写根元素
       writer.WriteStartElement("items");
       //开始一个元素
       writer.WriteStartElement("item");
       //向先前创建的元素中添加一个属性
       writer.WriteAttributeString("rating", "R");
       //添加子元素
       writer.WriteElementString("title", "The Matrix");
       writer.WriteElementString("format", "DVD");
       //关闭item元素
       writer.WriteEndElement();  // 关闭元素
       //在节点间添加一些空格
       writer.WriteWhitespace("");
       //使用原始字符串书写第二个元素
       writer.WriteRaw("item" +
                       "titleBloodWake/title" +
                       "formatXBox/format" +
                       "/item");
       //使用格式化的字符串书写第三个元素
       writer.WriteRaw("  item" +
                       "    titleUnreal Tournament 2003/title" +
                       "    formatCD/format" +
                       "  /item");
       // 关闭根元素
       writer.WriteFullEndElement();
       //将XML写入文件并关闭writer
       writer.Close();
    }
  }
  上面代码编译运行后将得到myMedia.xml文件,文件的内容为: items
    item rating="R"
      titleThe Matrix/title
      formatDVD/format
    /item
  item
      titleBloodWake/title
      formatXBox/format
  /item
    item
      titleUnreal Tournament 2003/title
      formatCD/format
    /item
  /items
  上面代码中的注释说明了这个程序的功能是如何实现的。需要记住的一件事是:当调用方法开始一个操作时,你需要在程序的合适的地方调用方法结束这个操作。例如,你调用了StartElement,你就必须调用EndElement关闭元素;当然在这两个调用之间你也可以加入一个子元素。无论你何时调用EndElement方法,它总是关闭最近使用StartElement方法打开的那个元素(这和栈的工作方式很相似)。

  使用XmlTextWriter十分的容易,不过我还是建议你自己动手试试这些代码和方法。你试过以后会发现这些代码能够很容易地集成到你的程序中。你还应该记住,XmlTextWriter仅仅是.NET提供的众多XML类中的一个。和XmlTextWriter一样,其他的XML类也十分的容易使用

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

来源:http://www.tulaoshi.com/n/20160219/1626920.html

延伸阅读
原图 素材图 最终效果图 1、打开原图,Ctrl+j两次,分别得到图层1和图层1副本, 2、在图层1执行:图像-调整——色阶,用白嚼舌管在图示的红圈处点一下。 3、用白画笔把头发外的杂色涂抹白色。 4、图层1的混合模式为正片叠底。 5、把素材图片拖入新背景,放在图层1的下方,得到图层2。 ...
如何计算矩阵乘法,这个大家都知道。通常情况下, 我们都是用以下代码实现的 : 代码如下: for(i=0;in;++i)     for(j=0;jn;++j){         sum=0;         for(k=0;kn;++k)             sum+...
看了那么多广告和宣传,现在你可能开始对 .NET 是什么有了一个想法。Internet 的应用正在不断地扩大,但我们的 Internet 编程方式还处于石器时代。Internet 用户就像老式主机的分时终端上的用户一样,他们从一个受保护的资源请求信息,然后等待回应。你从正在浏览的 Internet 站点上接收的信息由它希望提供给你的、基于 HTML 的信息组成的。 ...
标签: 宝宝 育儿
简单正确的6种退烧办法 民间错误退烧观念和方法 综观上述论点,家长应该要有正确的态度,将发烧当作一种警讯。发烧是因各种疾病引起的身体防卫性反应。研究显示,身体负责吞食细菌的白血球,在体温升高时(38℃~39℃)其吞食能力加强。因此当小孩因感冒或其他感染疾患引起体温升高时,运用各种可能的方法,要把体温立即降到正常范围,并非明...
在.Net 中 DataGrid 虽然有排序的功能,但并不支持双向的排序。用到了,看了些相关的帖子,自己尝试了一种方法,竟然也行得通,呵呵 主要是用DataGrid.Attributes 存了一个参数,同时在onSortCommand中修改了DataGridColumn的SortExpression. 代码如下: private void BindData() { DataTable dt = .......; if(dt != null) { DataView dv = d...

经验教程

648

收藏

30
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部