詳解C#借助.NET框架中的XmlTextReader類讀取XML的辦法。本站提示廣大學習愛好者:(詳解C#借助.NET框架中的XmlTextReader類讀取XML的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是詳解C#借助.NET框架中的XmlTextReader類讀取XML的辦法正文
XmlTextReader 供給對 XML 數據流的只進只讀拜訪。以後節點指讀取器定位到的節點。應用任何讀辦法推動讀取器而且屬性反應以後節點的值。
此類完成 XmlReader 並相符 W3C 可擴大標志說話 (XML) 1.0 和“XML 中的定名空間”建議。XmlTextReader 供給以下功效:
由於 XmlTextReader 不履行數據驗證所需的額定檢討,所以它供給疾速格局准確性剖析器。
若要履行數據驗證,請應用驗證 XmlReader。有關更多信息,請拜見 應用 XmlReader 驗證 XML 數據。
若要從 XmlDocument 中讀取 XML 數據,請應用 XmlNodeReader。
XmlTextReader 在產生 XML 剖析毛病時激發 XmlException。激發異常後,讀取器的狀況弗成預知。例如,申報的節點類型能夠分歧於以後節點的現實節點類型。應用 ReadState 屬性可以檢討讀取器能否處於毛病狀況。
有關 XmlReader 類的進一步闡述,請拜見 用 XmlReader 讀取 XML。
平安留意事項:
示例:
應用XmlTextReader從頭至尾浏覽xml文檔,比擬合適年夜量數據讀取
static void Main(string[] args) { XmlTextReader reader; if (File.Exists("student.xml"))//假如文件已存在,載入文檔 { reader = new XmlTextReader("student.xml"); } else//不然 { return; } int count = 0; while (reader.Read())//浏覽下一個 { if (reader.Name == "student") { //顯示讀取的屬性和中央文本 Console.WriteLine(reader.GetAttribute("id") + " " + reader.GetAttribute("age") + " " + reader.ReadString()); count++; } } reader.Close();//封閉浏覽器 Console.WriteLine("Count is " + count); Console.ReadKey(); }
固然也能夠用xmlDocument停止構造化讀取,然則讀取前體系會把全部文檔的構造獲得出去
static void Main(string[] args) { XmlDocument doc = new XmlDocument(); if (File.Exists("student.xml"))//假如文件已存在,載入文檔 { doc.Load("student.xml"); } else//不然 { Console.WriteLine("文檔不存在!"); Console.ReadKey(); return; } XmlNodeList list = doc.DocumentElement.SelectNodes("student");//讀取根節點的一切子節點,放到XmlNodeList中 foreach (XmlNode node in list)//從list中遍歷一切節點 { XmlElement ele = (XmlElement)node;//節點可以有中央文本然則沒有屬性值,所以要先轉成element能力讀出屬性值 Console.WriteLine(ele.GetAttribute("id") + " " + ele.GetAttribute("age") + " " + ele.InnerText);//讀取數據/顯示 } Console.ReadKey(); }
履行後果完整一樣