日期:2014-05-18  浏览次数:20484 次

谁能给个asp.net2.0对xml读写操作的教材看看?


想用xml作treeview和menu的数据源,并设计有在后台可以操作添加删除菜单。但是对xml的操作不懂。谁能给个asp.net2.0对xml读写操作的教材看看?

------解决方案--------------------
网上昭昭,很多
------解决方案--------------------
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Xml;

private XmlDocument xmlDoc;

//load xml file
private void LoadXml()
{
xmlDoc=new XmlDocument();
xmlDoc.Load(Server.MapPath( "User.xml "));
}

//添加节点
private void AddElement()
{
LoadXml();

XmlNode xmldocSelect=xmlDoc.SelectSingleNode( "user ");

XmlElement el=xmlDoc.CreateElement( "person "); //添加person节点
el.SetAttribute( "name ", "风云 "); //添加person节点的属性 "name "
el.SetAttribute( "sex ", "女 "); //添加person节点的属性 "sex "
el.SetAttribute( "age ", "25 "); //添加person节点的属性 "age "

XmlElement xesub1=xmlDoc.CreateElement( "pass "); //添加person节点的里的节点
xesub1.InnerText= "123 ";//设置文本节点
el.AppendChild(xesub1);
XmlElement xesub2=xmlDoc.CreateElement( "Address ");
xesub2.InnerText= "昆明 ";//设置文本节点
el.AppendChild(xesub2);

xmldocSelect.AppendChild(el);
xmlDoc.Save(Server.MapPath( "user.xml "));
}

//修改节点
private void UpdateElement()
{
LoadXml();
XmlNodeList nodeList=xmlDoc.SelectSingleNode( "user ").ChildNodes;//获取bookstore节点的所有子节点
foreach(XmlNode xn in nodeList)//遍历所有子节点
{
XmlElement xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型
if(xe.GetAttribute( "name ")== "风云 ")//如果name属性值为“风云”
{
xe.SetAttribute( "name ", "发明 ");

//如果下面有子节点在下走
XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点
foreach(XmlNode xn1 in nls)//遍历
{
XmlElement xe2=(XmlElement)xn1;//转换类型
if(xe2.Name== "pass ")//如果找到
{
xe2.InnerText= "66666 ";//则修改
break;
}
}
break;
}
}
xmlDoc.Save(Server.MapPath( "user.xml "));//保存
}

//删出节点
private void deleteNode()
{
LoadXml();
XmlNodeList xnl=xmlDoc.SelectSingleNode( "user ").ChildNodes;

foreach(XmlNode xn in xnl)
{
XmlElement xe=(XmlElement)xn;

if(xe.GetAttribute( "name ")== "发明 ")
{
//xe.RemoveAttribute( "name ");//删除name属性
// xe.RemoveAll();//删除该节点的全部内容