使用XmlTextReader 读取XML
生活随笔
收集整理的這篇文章主要介紹了
使用XmlTextReader 读取XML
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
XmlTextReader 限于只向前的讀取
XmlTextReader 的技術(shù)類似于讀取其他任何文件 首先打開文件,然后從文件中讀取信息,最后關(guān)閉文件.
每次從文件中讀取信息時,他在文件中的位置都會前移.到達文件結(jié)尾的時候就什么都不讀了。
1 創(chuàng)建XmlTextReader對象
??? XmlTextReader 類:表示提供對 XML 數(shù)據(jù)進行快速、非緩存、只進訪問的讀取器。
??? public class XmlTextReader : XmlReader, IXmlLineInfo
?例如:創(chuàng)建一個名為myReader的對象,并將他指向一個filename文件.這個文件名可以包含完整的路徑
?XmlTextReader myReader=new XmlTextReader("filename");
?XmlTextReader 構(gòu)造函數(shù):1 protected XmlTextReader();?? 2 public XmlTextReader(Stream);
??????????????????????? 3 public XmlTextReader(string);等等
?讀取數(shù)據(jù):
?注意:XmlTextReader 對象不驗證數(shù)據(jù)。它假設(shè)你已經(jīng)使用了標準的XML。(缺乏數(shù)據(jù)驗證有助于獲取最快的速度)
?讀取數(shù)據(jù)的XMLTextReader方法
?方法??????????????????????????????????? 詳細說明
?Read??????????????????????????????????? 讀取XML文件的下一個結(jié)點
?ReadAttributeValue????????????????????? 讀取屬性值
?ReadBase64????????????????????????????? 讀取Base64值
?ReadBinHex????????????????????????????? 讀取BinHex值
?ReadChars?????????????????????????????? 讀取文本字符
?ReadElementString?????????????????????? 讀取只有文本的元素
?ReadEndElement????????????????????????? 讀取結(jié)束元素
?ReadInnerXml??????????????????????????? 將XML結(jié)點全部內(nèi)容讀到一個字符串里面
?ReadOuterXml??????????????????????????? 將整個XML結(jié)點和它的內(nèi)容讀到一個字符串里面
?ReadStartElement??????????????????????? 讀取開始元素
?ReadString????????????????????????????? 將一個元素或者文本結(jié)點值讀到一個字符串里面
?注意XmlNodeType對象讀取的值與一個XmlNodeType的值相比較完成評估?(詳見 msdn)
?關(guān)閉XmlTextReader對象 myReader.Close();
?使用XmlTextReader的實例應(yīng)用程序
?實例說明:
XmlTextReader 的技術(shù)類似于讀取其他任何文件 首先打開文件,然后從文件中讀取信息,最后關(guān)閉文件.
每次從文件中讀取信息時,他在文件中的位置都會前移.到達文件結(jié)尾的時候就什么都不讀了。
1 創(chuàng)建XmlTextReader對象
??? XmlTextReader 類:表示提供對 XML 數(shù)據(jù)進行快速、非緩存、只進訪問的讀取器。
??? public class XmlTextReader : XmlReader, IXmlLineInfo
?例如:創(chuàng)建一個名為myReader的對象,并將他指向一個filename文件.這個文件名可以包含完整的路徑
?XmlTextReader myReader=new XmlTextReader("filename");
?XmlTextReader 構(gòu)造函數(shù):1 protected XmlTextReader();?? 2 public XmlTextReader(Stream);
??????????????????????? 3 public XmlTextReader(string);等等
?讀取數(shù)據(jù):
?注意:XmlTextReader 對象不驗證數(shù)據(jù)。它假設(shè)你已經(jīng)使用了標準的XML。(缺乏數(shù)據(jù)驗證有助于獲取最快的速度)
?讀取數(shù)據(jù)的XMLTextReader方法
?方法??????????????????????????????????? 詳細說明
?Read??????????????????????????????????? 讀取XML文件的下一個結(jié)點
?ReadAttributeValue????????????????????? 讀取屬性值
?ReadBase64????????????????????????????? 讀取Base64值
?ReadBinHex????????????????????????????? 讀取BinHex值
?ReadChars?????????????????????????????? 讀取文本字符
?ReadElementString?????????????????????? 讀取只有文本的元素
?ReadEndElement????????????????????????? 讀取結(jié)束元素
?ReadInnerXml??????????????????????????? 將XML結(jié)點全部內(nèi)容讀到一個字符串里面
?ReadOuterXml??????????????????????????? 將整個XML結(jié)點和它的內(nèi)容讀到一個字符串里面
?ReadStartElement??????????????????????? 讀取開始元素
?ReadString????????????????????????????? 將一個元素或者文本結(jié)點值讀到一個字符串里面
?注意XmlNodeType對象讀取的值與一個XmlNodeType的值相比較完成評估?(詳見 msdn)
?關(guān)閉XmlTextReader對象 myReader.Close();
?使用XmlTextReader的實例應(yīng)用程序
?實例說明:
?使用XmlTextReader讀取XML文件
using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Xml; using System.Text; // namespace Xmlapp2 public class Form1 : System.Windows.Forms.Form{ //private XmlTextReader xtr=null;public Form1(){//// Windows 窗體設(shè)計器支持所必需的//InitializeComponent();xtr=new XmlTextReader(@"temp.xml");//XmlTextReader.WhitespaceHandling 屬性 :獲取或設(shè)置一個值,該值指定如何處理空白xtr.WhitespaceHandling=WhitespaceHandling.All;//// TODO: 在 InitializeComponent 調(diào)用后添加任何構(gòu)造函數(shù)代碼//} //private void button2_Click(object sender, System.EventArgs e)//關(guān)閉退出{if (xtr!=null){xtr.Close();}Application.Exit();}private void button1_Click(object sender, System.EventArgs e){StringBuilder str=new StringBuilder("Formatted:");if (xtr.Read()==true){label1.Text=xtr.NodeType.ToString();label2.Text=xtr.Name.ToString();label3.Text=xtr.Value.ToString();switch (xtr.NodeType){case XmlNodeType.Element:str.AppendFormat("<{0}>",xtr.Name);break;case XmlNodeType.Text:break;case XmlNodeType.CDATA:str.AppendFormat("<![CDATA[{0}]]>",xtr.Value);break;case XmlNodeType.ProcessingInstruction:str.AppendFormat("<?{0} {1}?>",xtr.Name,xtr.Value);break;case XmlNodeType.Comment:str.AppendFormat("<!--{0}-->",xtr.Value);break;case XmlNodeType.XmlDeclaration:str.AppendFormat("<?xml version='1.0'?>");break;case XmlNodeType.DocumentType:str.AppendFormat("<!DOCTYPE{0} [{1}]>",xtr.Name,xtr.Value);break;case XmlNodeType.EntityReference:str.Append(xtr.Name);break;case XmlNodeType.EndElement:str.AppendFormat("</{0}>",xtr.Name);break;case XmlNodeType.Whitespace://Console.Write("{0}",xtr.Value);break;}label4.Text=str.ToString();}else{label1.Text="Eof";label2.Text="Eof";label3.Text="Eof";}}}
總結(jié)
以上是生活随笔為你收集整理的使用XmlTextReader 读取XML的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaScript学习系列3 -- J
- 下一篇: 为什么使用 XML