用C#读xml文件
上一篇 / 下一篇 2008-12-01 17:46:02 / 个人分类:软件开发相关
1208328177
- 自动化测试:
- 测试文档:
:]4a}Q;V0//读一个Xml文件,用XmlTextReader来读
HRh:p$E(`U0public ArrayList readXml(string fileName) 51Testing软件测试网O3w Vg
H4MN*`c
{ 51Testing软件测试网Eu%`W&Qqk0d
ArrayList readResult=new ArrayList();
9G`XG
r?0readResult.Clear();
XmlTextReader tr=new XmlTextReader(fileName); 51Testing软件测试网)h:M&H]L
while(!tr.EOF) 51Testing软件测试网;H Q%Mj~c
{
,@I nO` F.y:rmC$h
{0if(tr.MoveToContent()==XmlNodeType.Element) 51Testing软件测试网+`N-r;Y5t-i3e
{ 51Testing软件测试网/H4e{b/{`;_
try 51Testing软件测试网P8_,Zk0_s-u
{
8Z e"`LG7x~0readResult.Add(tr.ReadElementString());
@#x7l|M
^8R0}
3p\{4y]]D-FB0catch(XmlException ex){}
"^%j.VWOL `w0|0}
4Wr}3I P0tl0r0else
z+NA7{$s%Cw0{tr.Read();}
&e^r
M,de_v%{\iC0} 51Testing软件测试网b(D0G(} N
return readResult;
0@vPP#S3_*S0}
&IX+g*InB051Testing软件测试网
VP?9M"C(h1D
/* 51Testing软件测试网k/JL$KQ`f'^
* 读一个Xml的XmlDocument,用递归调用方法来显示所读Xml的所有内容
Hv
] R7u'B0* 递归调用不适合文件很大的Xml文件读取,这里只是展示一下XmlDocument的内部结构
U%VxEW4?'}0* 正常情况可以用XmlDocument的GetElementsByTagName()方法来查询 51Testing软件测试网 n2\0lJ6H[
* */ 51Testing软件测试网"oJe4d0JCs
public ArrayList readXml(XmlDocument doc){
n/pa6fL.h
}'w0ArrayList readResult=new ArrayList();
"Q"da/OYz0readResult.Clear(); 51Testing软件测试网mXyL&B"PY*K Z
4d8pL:f.vF0XmlNodeList nodeLst=doc.ChildNodes;
$k+w `C+b'N0XmlNodeListRead(readResult,nodeLst); 51Testing软件测试网n&o5Z'K)~ lL`w*Q
@-OJ
bcq1n v0return readResult; 51Testing软件测试网,l2n,wM-W
} 51Testing软件测试网@8eQ9k gt
//递归调用 51Testing软件测试网9u!e+O5} Y"N
public void XmlNodeListRead(ArrayList readResult,XmlNodeList nodeLst){
B`A*|.M$G0|0for (int i=0;i <nodeLst.Count;i++)
e!A n/V_)I0{
+J^*o2m-v6r
h0XmlNode node=nodeLst[i]; 51Testing软件测试网w[c9vi$LY9jGP
if(!node.HasChildNodes)
KT_Z7EO0{
q2iZ
}-o4c
u$M$qBR0if(node.NodeType!=XmlNodeType.Comment & node.NodeType!=XmlNodeType.XmlDeclaration)
"Ql"lP[0{ 51Testing软件测试网ck(n b`
try 51Testing软件测试网0E-NZE]w8S6q
{readResult.Add(node.InnerText);} 51Testing软件测试网MB;s@EVsW
catch(XmlException ex){}
|'RVQ'Pq;V0} 51Testing软件测试网4nRNS~#b3fI
} 51Testing软件测试网z*Y,KTgx
else
6iY%X
oF6]
I_{G0{ 51Testing软件测试网1rd9QF*o_
XmlNodeListRead(readResult,node.ChildNodes);
|*['n*R(NSn!E.G0} 51Testing软件测试网s$mw[`s$^?8J
}
+z
}l~7@;vete0}
private void button1_Click(object sender, System.EventArgs e)
_%t~Q$Y,V2fC0{
m%{F5I0W(vq*{0string fileName="books.xml"; 51Testing软件测试网4q;ez&\\jDR Y
ArrayList myRead=readXml(fileName); 51Testing软件测试网)f-vV%o,F[Q
this.listBox1.Items.Clear(); 51Testing软件测试网GHLy[4p#`Q
for(int i=0;i <myRead.Count;i++){this.listBox1.Items.Add(myRead[i].ToString());} 51Testing软件测试网@{-f/]]9TC;?N
}
private void button3_Click(object sender, System.EventArgs e) 51Testing软件测试网8k3wK&X vt'w
{
Yg ~0j)V7cdY0doc.Load("booksEdit.xml");
//显示
y]2IcXX9^%e0ArrayList myRead=readXml(doc);
V2Fdl\:x;EO0this.listBox1.Items.Clear();