詳解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();
}

履行後果完整一樣