使用XmlTextReader对象读取XML文档的步骤如下:
- 引入命名空间
XmlTextReader类位于System.Xml命名空间中,因此需要在代码中引入该命名空间。
using System.Xml;
- 创建XmlTextReader对象
创建XmlTextReader对象的方式有多种,可以直接使用XML文档的路径创建,也可以使用XML字符串创建。
// 创建一个XmlTextReader对象并加载本地的XML文档
XmlTextReader reader = new XmlTextReader("data.xml");
// 创建一个XmlTextReader对象并加载XML字符串
string xml = "<root><person name=\"Tom\" age=\"18\"/></root>";
XmlTextReader reader = new XmlTextReader(new StringReader(xml));
- 遍历XML文档
使用XmlTextReader对象可以遍历XML文档的所有节点,可以通过NodeType属性获取当前节点的类型,然后根据节点类型进行相应的处理。
// 遍历所有节点
while (reader.Read())
{
switch (reader.NodeType)
{
// 处理元素开始标记
case XmlNodeType.Element:
Console.WriteLine("<{0}>", reader.Name);
break;
// 处理元素结束标记
case XmlNodeType.EndElement:
Console.WriteLine("</{0}>", reader.Name);
break;
// 处理文本内容
case XmlNodeType.Text:
Console.WriteLine(reader.Value);
break;
}
}
- 关闭XmlTextReader对象
遍历完XML文档后,需要调用Close()方法关闭XmlTextReader对象。
reader.Close();
下面是两个示例说明:
示例一:读取本地XML文档
假设有一个本地的XML文档data.xml,内容如下:
<root>
<person name="Tom" age="18"/>
<person name="Lucy" age="20"/>
<person name="Jack" age="22"/>
</root>
我们要使用XmlTextReader对象读取它并输出每个person元素的属性值。代码如下:
// 创建一个XmlTextReader对象并加载XML文档
XmlTextReader reader = new XmlTextReader("data.xml");
// 遍历所有节点
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element && reader.Name == "person")
{
// 输出person元素的name和age属性
Console.WriteLine("name:{0}, age:{1}", reader.GetAttribute("name"), reader.GetAttribute("age"));
}
}
// 关闭XmlTextReader对象
reader.Close();
输出结果如下:
name:Tom, age:18
name:Lucy, age:20
name:Jack, age:22
示例二:读取XML字符串
假设有一个XML字符串,内容如下:
<root>
<greeting>Hello</greeting>
<name>Tom</name>
</root>
我们要使用XmlTextReader对象读取它并输出每个节点的名称和文本内容。代码如下:
// 创建一个XmlTextReader对象并加载XML字符串
string xml = "<root><greeting>Hello</greeting><name>Tom</name></root>";
XmlTextReader reader = new XmlTextReader(new StringReader(xml));
// 遍历所有节点
while (reader.Read())
{
switch (reader.NodeType)
{
// 处理元素开始标记
case XmlNodeType.Element:
Console.Write("<{0}>", reader.Name);
break;
// 处理元素结束标记
case XmlNodeType.EndElement:
Console.Write("</{0}>", reader.Name);
break;
// 处理文本内容
case XmlNodeType.Text:
Console.Write(reader.Value);
break;
}
}
// 关闭XmlTextReader对象
reader.Close();
输出结果如下:
<root><greeting>Hello</greeting><name>Tom</name></root>
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用xmltextreader对象读取xml文档示例 - Python技术站