.net中遍历xml函数
来源:互联网 发布:大宗交易系统源码 编辑:程序博客网 时间:2024/05/17 22:26
今天,实现了一个遍历xml节点的函数,如下:
protected void DisplayTree(XmlNode node) //遍历整个xml的函数
{
if(node!=null) //如果node不为空
{
Format(node); //对这个节点进行操作
}
if(node.HasChildNodes) //如果该node还有孩子节点
{
node=node.FirstChild;
while(node!=null)
{
DisplayTree(node);
node=node.NextSibling;
}
}
}
如果要对这个node进行某种操作,只要在Format函数中实现即可:
void Format(System.Xml.XmlNode node)
{
Console.WriteLine(node.Name);
//显示各个节点的名称,如果是节点中的值,则显示#TEXT.
if(node.Name==“Company“) //如果这个节点的名称是Company
{
XmlNode nextnode = node.FirstNode;
//注意,是FirstNode,还不是NextSibingNextSibing则会跑到下一个节点去了
Console.WriteLine(nextnode.value);
//显示节点为Company中的值
}
}
下面一步:怎么得到函数需要的node对象:
在主函数中,可以这样使用DisplayTree函数:
XmlTextReader xmlread = new XmlTextReader(“e://bb.xml“);
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(xmlread);
//Load参数可以代入文件名,流等对象如:xmldoc.Load(“E:/bb.xml“)
DisPlayTree(xmldoc.DocumentElement);
.对XML进行更新操作:
与Format函数很相似,如果想更新COMPANY中的值,则需要如此:
void Update(XmlNode node)
{
if(node.Name==“COMPANY“)
{
XmlNode nextnode = node.FirstChild;
nextnode.Value=“needvalue“;
}
}
最后,只要用xmldoc.save(“e://bb.xml“)即可进行更新了,参数可以是XmlWriter对象或是文件名
下面是写的详细代码:
protected void Format(XmlNode node)
{
if(node.Name=="COMPANY") //如果是调委会工作单位及职务的话
{
//XmlNode nextnode = node.FirstChild;
ListBox1.Items.Add(node.InnerText); //显示COMPANY节点的值
}
//ListBox1.Items.Add(node.Name+" "+node.Value);
}
protected void Update(XmlNode node)
{ //更新节点的值
if(node.Name=="COMPANY")
{
XmlNode nextnode = node.FirstChild;
nextnode.Value="雷迅公司";
}
}
protected void DisplayTree(XmlNode node) //遍历整个xml的函数
{
if(node!=null) //如果node不为空
{
Format(node); //则格式化这个node以输出
//Update(node);
}
if(node.HasChildNodes) //如果该node还有孩子节点
{
node=node.FirstChild;
while(node!=null)
{
DisplayTree(node);
node=node.NextSibling;
}
}
}
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!IsPostBack)
{
System.Xml.XmlTextReader xmlread = new XmlTextReader("e://bb.xml");
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load("e://bb.xml");
System.Xml.XmlNode node = xmldoc.DocumentElement;
DisplayTree(node);
xmlread.Close();
XmlNodeList xmllist = xmldoc.SelectNodes("FILE/YEARPLAN");
foreach(XmlNode yearplan in xmllist)
{
ListBox1.Items.Add(yearplan.InnerText);
//yearplan.LastChild.Value="EEEEEE";
}
//xmldoc.Save("e://bb.xml");
}
}
- .net中遍历xml函数
- C# 遍历 XML文件 节点 net XML节点 遍历
- xml中遍历map参数
- .net中读取xml
- .net 中Dictionary的遍历
- Qt中xml元素的遍历
- 遍历xml并把结果放到map中
- .NET中使用XML(1)
- asp.net中读写xml
- .net中XML编程总结
- .net 读取xml文件 循环遍历子节点
- xml遍历
- xml 遍历
- asp.net中遍历CheckBox的方法
- asp.net中如何遍历HashTable
- ASP.NET中遍历文件夹和文件
- ASP.NET(C#)中遍历所有控件
- ASP.NET(C#)中遍历所有控件
- Authorization and Profile Application Block 1.0研究总结
- Visual Studio .Net团队开发[转]
- C#实现的根据年月日计算星期几的函数
- 基于统一插件接口的WEB程序设计
- 关于imustworkhard的IntToBin(2-16进制转换函数)的效率问题
- .net中遍历xml函数
- The reason why i register this blog
- 这段代码在我的人生史上上演过……
- 简单的无闪烁刷新
- Tomcat配置技巧[转]
- Tomcat5的数据库连接池配置[转]
- JBuilder中文问题完美解决方案(转)
- 用c语言进行内码转换
- 基于统一插件接口的WEB程序设计[中]