XmlTextReader 用於快速的只進的讀取 XML。
XmlTextReader 的名稱空間是:
System.Xml
應用樣本
代碼如下 |
複製代碼 |
XmlTextReader reader = new XmlTextReader(xmlFragment, XmlNodeType.Element, null); while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { if (reader.Name == "state") { State = (SendingShipState)Convert.ToInt32(reader.ReadString()); } else if (reader.Name == "message") { MyMessage.AnalyzeXml(reader.ReadInnerXml()); } else if (reader.Name == "writer") { Writer = reader.ReadString(); } } } reader.Close(); |
XmlTextReader 有多個建構函式,參數可以使用 Url(網址或檔案路徑)、Stream、TextReader、XML 字串等,這裡使用的是 XML 字串。
XmlTextReader 是不允許後退的,所以使用 reader.Read() 從前往後讀,再判斷當前已經讀取的節點的類型,注意:Whitespace 也是一種節點。
然後我們再根據 Name 屬性值判斷標籤名稱,比如 <root> 的 Name 屬性值是 root。
代碼如下 |
複製代碼 |
MyMessage.AnalyzeXml(reader.ReadInnerXml()); |
這裡我們將該節點下面的所有 XML 內容交給另一個對象處理。
取屬性值
代碼如下 |
複製代碼 |
XmlTextReader reader = new XmlTextReader("data.xml"); while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element && reader.Name == "category") { MessageBox.Show(reader.GetAttribute( "text")); } } reader.Close(); |