亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#中基于流的XML文件操作筆記

2020-01-24 01:41:46
字體:
來源:轉載
供稿:網友

System.Xml.XmlReader和System.Xml.XmlWriters是兩個抽象類,XmlReader提供了對于XML數據的快速,非緩存,只進模式的讀取器,XmlWriter表示一個編寫器,該編寫器提供快速,非緩存,只進的方式來生成包含XML數據的流文件。

XmlReader與SAX讀取器類似,不過前者是提取模式(只進只讀的游標),后者是推送模式(將事件推送到應用程序)。

XmlReader的優點是:
1. 簡化狀態管理
2.可以有多個輸入流
3.提取模式可以作為推送模式的基礎,反之不行。
4.提供一個可以將字符串直接寫入緩沖區,避免多余字節的的復制。
5.有選擇的處理XML流,可以預先設置處理XML流的方式。
 下面的代碼代碼邏輯簡單不會出現異常所以沒有加入異常處理,只是作為測試使用。

// ReadXml.cs// XmlReader示例using System;using System.Xml;class Test{  public static void Main(string[] args)  {    string path = @"G:/資料/C#面向對象編程/C#面向對象編程/CSharp/Chapter17/books.xml";    XmlReader reader = null;    try    {      // 創建XmlReaderSettings對象      XmlReaderSettings settings = new XmlReaderSettings();      // 設置XmlReaderSettings對象的屬性      settings.ProhibitDtd = false;      // 使用XmlReaderSettings對象來創建XmlReader對象      reader = XmlReader.Create(path, settings);      ReadXml(reader);      reader.Close();      Console.ReadKey();    }    catch (Exception ex)    {      Console.WriteLine(ex.Message);    }    finally    {      if (reader != null)        reader.Close();    }  }  private static void ReadXml(XmlReader reader)  {    try    {      // 解析文件,并顯示每一個節點      while (reader.Read())      {        switch (reader.NodeType)        {          case XmlNodeType.Element:            if (reader.IsEmptyElement) // 空元素?            {              Console.WriteLine("<{0}/>", reader.Name);            }            else            {              Console.Write("<{0}", reader.Name);              if (reader.HasAttributes)  // 屬性?              {                while (reader.MoveToNextAttribute())                {                  Console.Write(" {0}=/"{1}/"", reader.Name, reader.Value);                }              }              Console.WriteLine(">", reader.Name);            }            break;          case XmlNodeType.Text:            Console.WriteLine(reader.Value);            break;          case XmlNodeType.CDATA:            Console.WriteLine("<![CDATA[{0}]]>", reader.Value);            break;          case XmlNodeType.ProcessingInstruction:            Console.WriteLine("<?{0} {1}?>", reader.Name, reader.Value);            break;          case XmlNodeType.Comment:            Console.WriteLine("<!--{0}-->", reader.Value);            break;          case XmlNodeType.XmlDeclaration:            Console.WriteLine("<?xml version='1.0'?>");            break;          case XmlNodeType.Document:            break;          case XmlNodeType.DocumentType:            Console.WriteLine("<!DOCTYPE {0} [{1}]>", reader.Name, reader.Value);            break;          case XmlNodeType.EntityReference:            Console.WriteLine(reader.Name);            break;          case XmlNodeType.EndElement:            Console.WriteLine("</{0}>", reader.Name);            break;        }      }    }    catch (XmlException ex)    {      Console.WriteLine(ex.Message);    }  }}

        
XmlWriters該編寫器提供快速,非緩存,只進的方式來生成包含XML數據的流文件,優點基本和前者一樣。
注意:使用 XmlReader,在調用 Close 方法前,不會讀取元素和特性。

XMLWriterusing System.Xml;namespace ConsoleApplication1{  class Program  {    static void Main(string[] args)    {      string path=@"C:/Users/dell/Desktop/test.xml";      XmlWriter writer=null;      XmlWriterSettings settings = new XmlWriterSettings();      settings.Indent = true;      settings.IndentChars=("");      writer = XmlWriter.Create(path, settings);      WriteXml(writer);      writer.Close();    }    private static void WriteXml(XmlWriter writer)    {      writer.WriteStartElement("books");      WriteChildNode(writer, "紅樓夢", "曹雪芹", "25");      WriteChildNode(writer, "三國演義", "羅貫中", "20");      WriteChildNode(writer, "水滸傳", "施耐庵", "18");      WriteChildNode(writer, "聊齋志異", "蒲松齡", "16");      writer.WriteEndElement();    }    private static void WriteChildNode(XmlWriter writer, string title, string author, string price)    {      writer.WriteStartElement("book");      writer.WriteStartElement("title");      writer.WriteValue(title);      writer.WriteEndElement();      writer.WriteStartElement("author");      writer.WriteValue(author);      writer.WriteEndElement();            writer.WriteStartElement("price");      writer.WriteValue(price);      writer.WriteEndElement();      writer.WriteEndElement();    }  }}

基本用法很簡單,就是輸出前后開關標簽 ,主要使用這三個方法WriteStartElement() writer.WriteValue() WriteEndElement()
     注意:  XmlWriter 方法輸出 XML 時,在調用 Close 方法前,不會寫入元素和特性。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品稀缺呦系列在线| 91精品在线观| 成人午夜激情免费视频| 午夜精品久久久久久久男人的天堂| 91精品国产综合久久久久久久久| 国产精品无av码在线观看| 亚洲欧美国产日韩天堂区| 国产美女扒开尿口久久久| 久久久国产影院| 午夜精品久久久久久久99热| 久久久亚洲国产天美传媒修理工| 91av在线看| 欧美精品电影在线| 一级做a爰片久久毛片美女图片| 亚洲欧美日韩第一区| 另类天堂视频在线观看| 一区二区三区国产在线观看| 国产精品观看在线亚洲人成网| 久久久噜噜噜久噜久久| 亚洲精品永久免费精品| 日韩精品高清在线| 国产成人精品一区二区在线| 欧美另类交人妖| 国产va免费精品高清在线| 欧美大片大片在线播放| 亚洲最大成人在线| 欧美激情亚洲精品| 欧美最猛性xxxxx(亚洲精品)| 日本中文字幕不卡免费| 亚洲精品电影网| 国产精品观看在线亚洲人成网| 欧美日韩日本国产| 91人成网站www| 成人福利视频网| 91av在线免费观看| 欧美老女人www| 亚洲qvod图片区电影| 亚洲人成77777在线观看网| 亚洲色在线视频| 欧美另类老肥妇| 亚洲国产成人一区| 亚洲欧洲第一视频| 欧美在线www| 欧美精品一二区| 久久国产精品久久久久久久久久| 77777少妇光屁股久久一区| 亚洲视频网站在线观看| 日韩在线观看网址| 最近2019中文字幕第三页视频| 亚洲资源在线看| 精品福利一区二区| 北条麻妃99精品青青久久| 日韩成人在线电影网| 亚洲国产精品久久久久秋霞不卡| 久热精品视频在线观看| 亚洲a级在线观看| 日韩精品极品视频免费观看| 久久人体大胆视频| 国产亚洲欧洲高清一区| 欧美亚洲第一页| 国产欧美在线看| 亚洲精品乱码久久久久久按摩观| 日韩午夜在线视频| 国产欧美 在线欧美| 日韩精品在线观看视频| 久久人人爽人人爽人人片av高请| 92看片淫黄大片欧美看国产片| 中文字幕一区二区精品| 成人网在线免费看| 亚洲精品美女网站| 青草青草久热精品视频在线网站| www高清在线视频日韩欧美| 欧美大全免费观看电视剧大泉洋| 日本久久久a级免费| 亚洲女成人图区| 国产精品爱啪在线线免费观看| 欧美日韩国产91| 亚洲高清福利视频| 成人激情电影一区二区| 欧美综合激情网| 91精品啪aⅴ在线观看国产| 亚洲欧美制服丝袜| 久久久久久久久久av| 欧美激情视频一区| 国外色69视频在线观看| 国产亚洲欧美aaaa| 中文字幕亚洲综合久久| 久久久国产一区二区| 久久久成人av| 国产精品中文久久久久久久| 国产欧美一区二区三区四区| 亚洲成人999| 久久久精品美女| 亚洲日本中文字幕免费在线不卡| 亚洲精品国产精品久久清纯直播| 欧洲日本亚洲国产区| 在线观看国产精品日韩av| 国产欧美久久一区二区| 中文字幕亚洲一区二区三区| 亚洲日韩中文字幕在线播放| 成人免费看黄网站| 亚洲欧美日韩综合| 中文字幕亚洲欧美日韩在线不卡| 久久成年人免费电影| 国产美女搞久久| 国产精品电影观看| 欧美极品美女视频网站在线观看免费| 欧美性xxxxxxxxx| 日韩在线免费视频| 91香蕉亚洲精品| 在线观看日韩视频| 日本91av在线播放| 欧美成人精品一区二区| 成人av资源在线播放| 国产精品第10页| 欧美日韩国产999| 亚洲影院污污.| 欧美做受高潮电影o| 91免费高清视频| 精品丝袜一区二区三区| 在线性视频日韩欧美| 日韩欧美成人精品| 国产人妖伪娘一区91| 美女啪啪无遮挡免费久久网站| 亚洲精品视频在线观看视频| 亚洲第一网站男人都懂| 国产精品久久久久久久美男| 欧美三级欧美成人高清www| 日韩在线播放视频| 欧美性做爰毛片| 亚洲欧美在线看| 国产中文字幕亚洲| 免费91在线视频| 国产精品视频一区二区三区四| 亚洲精品综合精品自拍| 成人两性免费视频| 欧美成人四级hd版| 精品久久久久久久久久ntr影视| 亚洲香蕉成人av网站在线观看| 欧美日韩精品中文字幕| 精品人伦一区二区三区蜜桃免费| 日韩亚洲欧美中文在线| 中文一区二区视频| 高清欧美性猛交| 亚洲人精选亚洲人成在线| 91精品视频在线免费观看| 在线亚洲午夜片av大片| 日韩中文字幕在线| 日韩中文在线观看| 欧美成人午夜免费视在线看片| 亚洲欧美日韩视频一区| 欧美大肥婆大肥bbbbb| 国产亚洲精品美女久久久久| 欧美日韩国产成人高清视频| 91久久精品一区| 欧美整片在线观看| 欧美性生交大片免费| 国产视频丨精品|在线观看| 欧美激情国产高清| 亚洲成人xxx| 亚洲欧美日韩一区二区三区在线| 亚洲аv电影天堂网| 97视频在线观看免费| 日韩欧美成人精品|