您的位置:首页 > 编程语言 > ASP

asp.net操作xml实现创建,添加,删除,查询等功能函数

2013-08-30 19:27 896 查看
以下是引用片段:

<?xml version="1.0"?>

<dbGuest>

<User>

<Name uid="d">ew</Name>

<City>dsa</City>

<Email>eq</Email>

</User>

</dbGuest>

创建XML文件

以下是引用片段:

private void btnCreateXml_Click(object sender, System.EventArgs e)

{

//创建XML文档对象

System.Xml.XmlDocument xmldoc = new System.Xml.XmlDocument();

//创建xml 声明节点

System.Xml.XmlNode xmlnode = xmldoc.CreateNode(System.Xml.XmlNodeType.XmlDeclaration, "", "");

//添加上述创建和 xml声明节点

xmldoc.AppendChild(xmlnode);

//创建xml dbGuest 元素(根节点)

System.Xml.XmlElement xmlelem = xmldoc.CreateElement("", "dbGuest", "");

xmldoc.AppendChild(xmlelem);

try

{

xmldoc.Save(xmlFile);

}

catch(Exception ex)

{

if(ex.Message.IndexOf("访问被拒绝") != -1)

{

lblMsg.Text = "创建xml文档失败,没有写入权限,请检查xmldocs文件夹的写入权限!";

return;

}

}

lblMsg.Text = "xml文件创建成功";

BindXMLFiles();

GetXmlContent();

BindUserNames();

}

添加用户:

以下是引用片段:

private void btnAdd_Click(object sender, System.EventArgs e)

{

string uID = txtUID.Text;

string userName = txtUserName.Text;

string City = txtCity.Text;

string Email = txtEmail.Text;

if(!System.IO.File.Exists(xmlFile))

{

lblMsg.Text = "xml文件"+xmlFile+"不存在,请先点击创建!";

return;

}

XmlDocument xmlDoc = new XmlDocument();

xmlDoc.Load(xmlFile); //加载文件

XmlNode root = xmlDoc.SelectSingleNode("dbGuest");//查找<dbGuest>

XmlElement xe_dbGuest_User = xmlDoc.CreateElement("User");//创建一个<User>节点

XmlElement xe_dbGuest_User_Name = xmlDoc.CreateElement("Name");

xe_dbGuest_User_Name.InnerText = userName;//设置文本节点

XmlAttribute a = xmlDoc.CreateAttribute("uid");//创建一个 属性

a.Value = uID;

xe_dbGuest_User_Name.Attributes.Append(a);//增加一个属性

xe_dbGuest_User.AppendChild(xe_dbGuest_User_Name);//添加到<User>节点中

XmlElement xe_dbGuest_User_City = xmlDoc.CreateElement("City");//创建City节点

xe_dbGuest_User_City.InnerText = City;

xe_dbGuest_User.AppendChild(xe_dbGuest_User_City);//添加到<User>节点中

XmlElement xe_dbGuest_User_Email = xmlDoc.CreateElement("Email");//创建Email节点

xe_dbGuest_User_Email.InnerText = Email;

xe_dbGuest_User.AppendChild(xe_dbGuest_User_Email);

root.AppendChild(xe_dbGuest_User);//添加到<dbGuest>节点中

xmlDoc.Save(xmlFile);//保存文件

lblMsg.Text = "成功添加用户";

GetXmlContent();

BindXML();

BindUserNames();

}

//绑定xml数据

private void BindXML()

{

if(!System.IO.File.Exists(xmlFile))

{

lblMsg.Text = "xml文件"+xmlFile+"不存在,请先点击创建!";

return;

}

// 方法一:通过ds 读取 xml

// DataSet ds = new DataSet();

// ds.ReadXml(xmlFile);

// if(ds.Tables.Count > 0)

// {

// dgValue.DataSource = ds.Tables[0].DefaultView;

// dgValue.DataBind();

// }

//方法二

DataTable dt = new DataTable();

DataColumn dc = new DataColumn("uid");

dt.Columns.Add(dc);

dc = new DataColumn("name");

dt.Columns.Add(dc);

dc = new DataColumn("city");

dt.Columns.Add(dc);

dc = new DataColumn("email");

dt.Columns.Add(dc);

//将xml文件加载成xmlDoc

XmlDocument xmlDoc = new XmlDocument();

xmlDoc.Load(xmlFile);

//得到dbGust所有子节点

XmlNodeList xnl=xmlDoc.SelectSingleNode("dbGuest").ChildNodes;

for(int i = 0 ; i < xnl.Count;i++)

{

//在每个子节点是遍历 xn 代表的是一个个User

string uid = xnl.Item(i).ChildNodes[0].Attributes["uid"].Value;

string name = xnl.Item(i).ChildNodes[0].InnerText;

string city = xnl.Item(i).ChildNodes[1].InnerText;

string email = xnl.Item(i).ChildNodes[2].InnerText;

DataRow dr = dt.NewRow();

dr[0] = uid;

dr[1] = name;

dr[2] = city;

dr[3] = email;

dt.Rows.Add(dr);

}

dgValue.DataSource = dt;

dgValue.DataBind();

}

删除用户:

以下是引用片段:

private void btnDelete_Click(object sender, System.EventArgs e)

{

string selectName = ddlNames.SelectedItem.Text;

string selectID = ddlNames.SelectedValue;

XmlDocument xmlDoc = new XmlDocument();

xmlDoc.Load(xmlFile);

XmlNodeList xnl=xmlDoc.SelectSingleNode("dbGuest").ChildNodes;

for(int i = 0 ; i < xnl.Count ; i++)

{

XmlElement xe=(XmlElement)xnl[i];//第i个dbGust子节点

XmlNodeList node = xe.GetElementsByTagName("Name");

if(node.Count>0)

{

//判断为用户选择的

if(node[0].InnerText==selectName && node[0].Attributes["uid"].Value == selectID)

{

string m = node[0].InnerText;

xmlDoc.SelectSingleNode("dbGuest").RemoveChild(node[0].ParentNode);//删除该User节点

//xe.RemoveAll();//删除该节点的全部内容 这二种有差别

break;

}

}

}

xmlDoc.Save(xmlFile);

BindXML();

GetXmlContent();

BindUserNames();

}

更新用户:

以下是引用片段:

private void btnUpdate_Click(object sender, System.EventArgs e)

{

string selectName = ddlNames.SelectedItem.Text;

string selectID = ddlNames.SelectedValue;

XmlDocument xmlDoc = new XmlDocument();

xmlDoc.Load(xmlFile);

XmlNodeList nodeList=xmlDoc.SelectSingleNode("dbGuest").ChildNodes;//获取dbGuest节点的所有子节点

foreach(XmlNode xn in nodeList)//遍历所有子节点

{

XmlElement xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型

XmlNodeList node = xe.GetElementsByTagName("Name");

if(node.Count>0)

{

//判断为用户选择的

if(node[0].InnerText==selectName && node[0].Attributes["uid"].Value == selectID)

{

XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点

foreach(XmlNode xn1 in nls)//遍历

{

XmlElement xe2=(XmlElement)xn1;//转换类型

if(xe2.Name=="Email")//如果找到Email属性

{

xe2.InnerText="http://www.hnyxrx.com";//则修改

break;//找到退出来就可以了

}

}

break;

}

}

}

xmlDoc.Save(xmlFile);

BindXML();

GetXmlContent();

}

查询用户:

以下是引用片段:

private void btnSelect_Click(object sender, System.EventArgs e)

{

XmlDocument doc = new XmlDocument();

doc.Load(xmlFile);

string selectName = ddlNames.SelectedItem.Text;

string email = doc.SelectSingleNode("//User[Name=’"+selectName+"’]").ChildNodes.Item(2).InnerText;

lblMsg.Text = "查询"+selectName+"用户email为"+email;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: