作者在 2011-03-02 11:45:53 发布以下内容
注意:
1.Read方法读取下一个节点。
2.xreader.WhitespaceHandling = WhitespaceHandling.None; //忽略空格。
3.XmlNodeType Element 元素 <姓名>
3.XmlNodeType Element 元素 <姓名>
Text 节点的文本内容 张三
EndElement 元素结束标记 </姓名>
4.XmlTextReader的Depth属性可以获取XML文档当前节点的深度。
using System;
using System.Xml;
namespace XmlReader_Read
{
/// <summary>
/// 使用XmlTextReader对象的Read方法,从文档加载XML
/// </summary>
class T
{
/// <summary>
/// 使用XmlTextReader对象的Read方法,从文档加载XML
/// </summary>
public void ReadFromFile()
{
// 加载XML文档,并忽略所有的空格
string filename="..\\..\\TestDocs\\test.xml";
XmlTextReader xreader = new XmlTextReader(filename);
xreader.WhitespaceHandling = WhitespaceHandling.None; //忽略空格
// 解析XML文档,并输出所有节点
while (xreader.Read())
{
for(int i=0;i<xreader.Depth;i++)
Console.Write("\t");
switch (xreader.NodeType) //判断节点类型
{
case XmlNodeType.Element: //元素
Console.WriteLine("<{0}>", xreader.Name);
break;
case XmlNodeType.Text: //内容
Console.WriteLine("{0}",xreader.Value);
break;
case XmlNodeType.EndElement: //元素结束标记
Console.WriteLine("</{0}>", xreader.Name);
break;
case XmlNodeType.Comment: //注释
Console.WriteLine("<!--{0}-->", xreader.Value);
break;
case XmlNodeType.XmlDeclaration: //XML 声明
Console.WriteLine("<?xml version='1.0'?>");
break;
case XmlNodeType.Document: //根节点
break;
case XmlNodeType.DocumentType: //文档类型声明
Console.WriteLine("<!DOCTYPE {0} [{1}]", xreader.Name, xreader.Value);
break;
}
}
//关闭XmlTextReader
if (xreader!=null)
xreader.Close();
}
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
T t=new T();
t.ReadFromFile();
}
}
}
using System.Xml;
namespace XmlReader_Read
{
/// <summary>
/// 使用XmlTextReader对象的Read方法,从文档加载XML
/// </summary>
class T
{
/// <summary>
/// 使用XmlTextReader对象的Read方法,从文档加载XML
/// </summary>
public void ReadFromFile()
{
// 加载XML文档,并忽略所有的空格
string filename="..\\..\\TestDocs\\test.xml";
XmlTextReader xreader = new XmlTextReader(filename);
xreader.WhitespaceHandling = WhitespaceHandling.None; //忽略空格
// 解析XML文档,并输出所有节点
while (xreader.Read())
{
for(int i=0;i<xreader.Depth;i++)
Console.Write("\t");
switch (xreader.NodeType) //判断节点类型
{
case XmlNodeType.Element: //元素
Console.WriteLine("<{0}>", xreader.Name);
break;
case XmlNodeType.Text: //内容
Console.WriteLine("{0}",xreader.Value);
break;
case XmlNodeType.EndElement: //元素结束标记
Console.WriteLine("</{0}>", xreader.Name);
break;
case XmlNodeType.Comment: //注释
Console.WriteLine("<!--{0}-->", xreader.Value);
break;
case XmlNodeType.XmlDeclaration: //XML 声明
Console.WriteLine("<?xml version='1.0'?>");
break;
case XmlNodeType.Document: //根节点
break;
case XmlNodeType.DocumentType: //文档类型声明
Console.WriteLine("<!DOCTYPE {0} [{1}]", xreader.Name, xreader.Value);
break;
}
}
//关闭XmlTextReader
if (xreader!=null)
xreader.Close();
}
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
T t=new T();
t.ReadFromFile();
}
}
}