淺談 XmlReader
2024-09-05 20:55:42
供稿:網(wǎng)友
注冊(cè)會(huì)員,創(chuàng)建你的web開(kāi)發(fā)資料庫(kù),摘要
組成.net平臺(tái)的關(guān)鍵技術(shù)之一就是xml,這里簡(jiǎn)單談?wù)勅绾问褂?net中的xmlreader。
1. xmlreader簡(jiǎn)介
xmlreader是一種快速、無(wú)緩沖、向前并只讀的游標(biāo),用于讀取xml文檔,并且隱藏了底層數(shù)據(jù)交換的復(fù)雜性。xmlreader作為一種"拉模型"較"推模型"的sax有了多種優(yōu)勢(shì),最主要的一個(gè)就是它更易使用,其次性能更為提高、并減少了編程的難度。
xmlreader類(lèi)是一個(gè)抽象類(lèi),xmltextreader,xmlvalidatingreader,和xmlnodereader類(lèi)都繼承自xmlreader類(lèi)。xmlreader類(lèi)有很多方法和屬性用來(lái)讀取xml文件的內(nèi)容、查找xml元素的深度、判斷當(dāng)前元素的內(nèi)容是否為空,以及導(dǎo)航xml的屬性等。
2. xmlreader應(yīng)用
在.net構(gòu)架中,xml類(lèi)均被定義在system.xml名稱(chēng)空間中,如:xmlreader、xmltextreader、 xmlvalidatingreader、xmlnodereader、xmlwriter、和xmltextwriter,因此使用xmlreader時(shí)應(yīng)該引入system.xml。
下面是一個(gè)簡(jiǎn)單的讀取xml的控制臺(tái)程序。
[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;
}
}
}
測(cè)試使用的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>
</job>
</person>
<person>
<name>
<firstname>linda</firstname>
<lastname>sue</lastname>
</name>
<address>
<street>1302 american st.</street>
<city>paso robles</city>
<state>ca</state>
<zipcode>93447</zipcode>
</address>
<job>
<title>attorney</title>
<description>stands up for justice</description>
</job>
</person>
</people>
可以通過(guò)調(diào)用命令提示符運(yùn)行程序,如:e:/>consoleapplication_xmlreader.exe people.xml
3. 小結(jié)
.net的xmlreader提供了一種訪問(wèn)xml數(shù)據(jù)的良好接口,讓開(kāi)發(fā)人員更為輕松的讀取xml文件中的內(nèi)容,使得快速應(yīng)用.net成為可能。