C#对XML完整操作.
C#对XML完整操作
https://www.360docs.net/doc/9911396097.html,/question/74181361.html
1.XML数据格式如上,要求程序有读.写.编辑.删除操作
2.请尽可能帮忙写备注
3.xml数据读入到treeview中,分别显示各个字段,并按时间顺序排序
4.请不要复制网上代码,很多都是出现杂七杂八问题呢
5.代码请尽量简洁
6.如果好用,再加感谢分^_^
//假定TreeView控件的id为treeView
XmlDocument dom = new XmlDocument();
dom.Load("aaa.xml");//装载XML文档
//遍历所有节点
int num = 0;
foreach(XmlElement birthday in dom.DocumentElement.ChildNodes)
{
//读取数据
string type = birthday.SelectSingleNode("type").InnerText;
string date = birthday.SelectSingleNode("date").InnerText;
string title = birthday.SelectSingleNode("title").InnerText;
string name = birthday.SelectSingleNode("name").InnerText;
string text = name + ":" + title;//节点文字
string image = type;//节点图片
string data = num.ToString();//节点对应数据
num++;
//装载示例,将新建的节点添加到TreeView
TreeNode node = new TreeNode(text, data, image);//create a new node treeView.Nodes.Add(node);
//编辑示例:将当前节点的生日更改为当前日期
birthday.SelectSingleNode("date").InnerText = DateTime.Now.ToString(); //删除示例:将当前节点删除
birthday.ParentNode.RemoveChild(birthday);
}
dom.Save();
这是以前自己做过的一个测试。楼主可以参考一下。
=======================bookstore.XML内容====================
=======================读取========================
XmlDocument doc = new XmlDocument();
doc.Load(@"d:\bookstore.xml");
XmlElement root = doc.DocumentElement;
MessageBox.Show(root.SelectNodes("book")[0].InnerText);
=======================添加=========================
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(@"d:\bookstore.xml");
XmlNode root = xmlDoc.SelectSingleNode("bookstore");//查找
XmlElement xe1 = xmlDoc.CreateElement("book");//创建一个
xe1.SetAttribute("ISBN", "2-3631-4");//设置该节点的ISBN属性
XmlElement xesub1 = xmlDoc.CreateElement("title");//添加一个名字为title的子节点
xesub1.InnerText = "CS从入门到精通";//设置文本
xe1.AppendChild(xesub1);//把title添加到
XmlElement xesub2 = xmlDoc.CreateElement("author");
xesub2.InnerText = "候捷";
xe1.AppendChild(xesub2);
XmlElement xesub3 = xmlDoc.CreateElement("price");
xesub3.InnerText = "58.3";
xe1.AppendChild(xesub3);
root.AppendChild(xe1);//把book添加到
xmlDoc.Save(@"d:\bookstore.xml");
======================修改========================
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(@"d:\bookstore.xml");
XmlNodeList nodeList =
xmlDoc.SelectSingleNode("bookstore").ChildNodes;//获取bookstore节点的所有子节点
foreach (XmlNode xn in nodeList)//遍历所有名字为bookstore的子节点 {
XmlElement xe = (XmlElement)xn;//将子节点类型转换为XmlElement 类型
if (xe.GetAttribute("genre") == "李赞红")//如果genre属性值为“李赞红”
{
xe.SetAttribute("genre", "update李赞红");//则修改该属性为“update李赞红”
XmlNodeList nls = xe.ChildNodes;//继续获取xe(xn)子节点的所有子节点
foreach (XmlNode xn1 in nls)//遍历
{
XmlElement xe2 = (XmlElement)xn1;//转换类型
if (https://www.360docs.net/doc/9911396097.html, == "author")//如果找到
{
xe2.InnerText = "亚胜";//则修改
break;//找到退出来
}
}
break;
}
}
xmlDoc.Save(@"d:\bookstore.xml");//保存。
========================删除=========================
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(@"d:\bookstore.xml");
XmlNodeList xnl = xmlDoc.SelectSingleNode("bookstore").ChildNodes;
foreach (XmlNode xn in xnl)
{
XmlElement xe = (XmlElement)xn;
if (xe.GetAttribute("genre") == "fantasy")
{
xe.RemoveAttribute("genre");//删除genre属性
}
else if (xe.GetAttribute("genre") == "update李赞红")
{
xe.RemoveAll();//删除该节点的全部内容
}
}
xmlDoc.Save(@"d:\bookstore.xml");
回答三
方法一:使用XML控件
<% @ Page Language="C#"%>
读取XML方法一
方法二:使用DOM技术
<% @ Page Language="C#"%>
<% @ Import Namespace="System.Xml"%>
<% @ Import Namespace="System.Xml.Xsl"%>
void Page_Load(Object sender,EventArgs e)
{
XmlDocument doc=new XmlDocument();
doc.Load(Server.MapPath("grade.xml"));
xml1.Document=doc;
}
读取XML方法二
方法三:使用DataSet对象
<% @ Page Language="C#"%>
<% @ Import Namespace="System.Data"%>
<% @ Import Namespace="System.Data.OleDb"%>
void Page_Load(Object sender,EventArgs e)
{
DataSet objDataSet=new DataSet();
objDataSet.ReadXml(Server.MapPath("grade.xml"));
dgEmployees.DataSource=objDataSet.Tables["student"].DefaultView; dgEmployees.DataBind();
}