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(); |
时间: 2024-10-31 14:16:18