站内搜索
分类列表
本类阅读排行
本类推荐文章
广告
浅谈 XmlReader
作者: 来源: 点击: 日期:2007-7-5 0:54:12
摘要
组成.NET平台的关键技术之一就是XML,这里简单谈谈如何使用.NET中的XmlReader。
1. XMLReader简介
XmlReader是一种快速、无缓冲、向前并只读的游标,用于读取XML文档,并且隐藏了底层数据交换的复杂性。XmlReader作为一种"拉模型"较"推模型"的SAX有了多种优势,最主要的一个就是它更易使用,其次性能更为提高、并减少了编程的难度。
XmlReader类是一个抽象类,XmlTextReader,XmlValidatingReader,和XmlNodeReader类都继承自XmlReader类。XmlReader类有很多方法和属性用来读取XML文件的内容、查找XML元素的深度、判断当前元素的内容是否为空,以及导航XML的属性等。
2. XMLReader应用
在.NET构架中,XML类均被定义在System.Xml名称空间中,如:XmlReader、XmlTextReader、 XmlValidatingReader、XmlNodeReader、XmlWriter、和XmlTextWriter,因此使用XmlReader时应该引入System.Xml。
下面是一个简单的读取XML的控制台程序。
[Visual Basic]
Imports System
Imports System.Xml
Module Module1
Sub Main(ByVal CmdArgs() As String)
Try
Dim sFileName As String = CmdArgs(0)
Dim xtr As New XmlTextReader(sFileName)
xtr.Read()
Console.WriteLine("<{0}>", xtr.Name)
Console.WriteLine(xtr.ReadInnerXml())
Console.WriteLine("</{0}>", xtr.Name)
xtr.Close()
Catch eErr As Exception
Console.WriteLine("Error:\t{0}", eErr.Message)
End Try
End Sub
End Module
[C#]
using System;
using System.Xml;
namespace ConsoleApplicationXmlReader
{
class ClassXmlReader
{
static void Main(string[] args)
{
try
{
String sFileName = args[0];
XmlTextReader xtr = new XmlTextReader(sFileName);
xtr.Read();
Console.WriteLine("<{0}>", xtr.Name);
Console.WriteLine(xtr.ReadInnerXml());
Console.WriteLine("</{0}>", xtr.Name);
xtr.Close();
}
catch (Exception e)
{
Console.WriteLine("Error:\t{0}", e.Message);
}
return;
}
}
}
测试使用的XML文件,People.xml
<People>
<Person>
<Name>
<FirstName>Joe</FirstName>
<LastName>Suits</LastName>
</Name>
<Address>
<Street>1800 Success Way</Street>
<City>Redmond</City>
<State>WA</State>
<ZipCode>98052</ZipCode>
</Address>
<Job>
<Title>CEO</Title>
<Description>Wears the nice suit</Description>
组成.NET平台的关键技术之一就是XML,这里简单谈谈如何使用.NET中的XmlReader。
1. XMLReader简介
XmlReader是一种快速、无缓冲、向前并只读的游标,用于读取XML文档,并且隐藏了底层数据交换的复杂性。XmlReader作为一种"拉模型"较"推模型"的SAX有了多种优势,最主要的一个就是它更易使用,其次性能更为提高、并减少了编程的难度。
XmlReader类是一个抽象类,XmlTextReader,XmlValidatingReader,和XmlNodeReader类都继承自XmlReader类。XmlReader类有很多方法和属性用来读取XML文件的内容、查找XML元素的深度、判断当前元素的内容是否为空,以及导航XML的属性等。
2. XMLReader应用
在.NET构架中,XML类均被定义在System.Xml名称空间中,如:XmlReader、XmlTextReader、 XmlValidatingReader、XmlNodeReader、XmlWriter、和XmlTextWriter,因此使用XmlReader时应该引入System.Xml。
下面是一个简单的读取XML的控制台程序。
[Visual Basic]
Imports System
Imports System.Xml
Module Module1
Sub Main(ByVal CmdArgs() As String)
Try
Dim sFileName As String = CmdArgs(0)
Dim xtr As New XmlTextReader(sFileName)
xtr.Read()
Console.WriteLine("<{0}>", xtr.Name)
Console.WriteLine(xtr.ReadInnerXml())
Console.WriteLine("</{0}>", xtr.Name)
xtr.Close()
Catch eErr As Exception
Console.WriteLine("Error:\t{0}", eErr.Message)
End Try
End Sub
End Module
[C#]
using System;
using System.Xml;
namespace ConsoleApplicationXmlReader
{
class ClassXmlReader
{
static void Main(string[] args)
{
try
{
String sFileName = args[0];
XmlTextReader xtr = new XmlTextReader(sFileName);
xtr.Read();
Console.WriteLine("<{0}>", xtr.Name);
Console.WriteLine(xtr.ReadInnerXml());
Console.WriteLine("</{0}>", xtr.Name);
xtr.Close();
}
catch (Exception e)
{
Console.WriteLine("Error:\t{0}", e.Message);
}
return;
}
}
}
测试使用的XML文件,People.xml
<People>
<Person>
<Name>
<FirstName>Joe</FirstName>
<LastName>Suits</LastName>
</Name>
<Address>
<Street>1800 Success Way</Street>
<City>Redmond</City>
<State>WA</State>
<ZipCode>98052</ZipCode>
</Address>
<Job>
<Title>CEO</Title>
<Description>Wears the nice suit</Description>
浅谈 XmlReader 评论
