遍历xml删选_对于任意的XML的遍历

class test

{

private static string root;

public static  void showXML(string path)

{

XmlDocument xd = new XmlDocument();

xd.Load(path);

XmlNodeList xnl = xd.DocumentElement.ChildNodes;

root = xd.FirstChild.NextSibling.Name;//记录根节点

Console.Write(root+"\n");

foreach (XmlNode xn in xnl)

{

//Console.Write(xn.Attributes["name"].Value.ToString()+"\n");

XmlNode child = xn.FirstChild;

NodeOperate(child);

}

}

public static  void NodeOperate(XmlNode xn1)

{

if (xn1.HasChildNodes == true)

{

Console.Write(xn1.Name + "\n");

Console.Write("\n");

XmlNode childNode = xn1.FirstChild;

NodeOperate(childNode);

}

else

{

Console.Write(xn1.Name + "\n");

Console.Write(xn1.InnerText);

Console.Write("\n");

if (xn1.NextSibling != null)

{

NodeOperate(xn1.NextSibling);

}

else

{

int flag = 0;

while (xn1.NextSibling == null)

{

if (xn1.Name == root)//检查是否到了根节点,如果不检查会出现节点的引用错误

{

flag = 1;

break;

}

else

{

xn1 = xn1.ParentNode;

}

}

if (flag == 0)

{

NodeOperate(xn1.NextSibling);

}

else if(flag==1)

{

Console.Write("End");

}

}

}

}

}

public static void Main()

{

test.showXML(@"C:\Documents and Settings\SKY\My Documents\Visual Studio 2005\Projects\Project1\Project1\system.xml");

Console.Read();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值