C#对XML完整操作.docx
《C#对XML完整操作.docx》由会员分享,可在线阅读,更多相关《C#对XML完整操作.docx(26页珍藏版)》请在冰豆网上搜索。
C#对XML完整操作
C#对XML完整操作
xmlversion="1.0"?
>
类型
时间
信息姓名
类型
时间
信息姓名
1.XML数据格式如上,要求程序有读.写.编辑.删除操作
2.请尽可能帮忙写备注
3.xml数据读入到treeview中,分别显示各个字段,并按时间顺序排序
4.请不要复制网上代码,很多都是出现杂七杂八问题呢
5.代码请尽量简洁
6.如果好用,再加感谢分^_^
回答一
//假定TreeView控件的id为treeView
XmlDocumentdom=newXmlDocument();
dom.Load("aaa.xml");//装载XML文档
//遍历所有节点
intnum=0;
foreach(XmlElementbirthdayindom.DocumentElement.ChildNodes)
{
//读取数据
stringtype=birthday.SelectSingleNode("type").InnerText;
stringdate=birthday.SelectSingleNode("date").InnerText;
stringtitle=birthday.SelectSingleNode("title").InnerText;
stringname=birthday.SelectSingleNode("name").InnerText;
stringtext=name+":
"+title;//节点文字
stringimage=type;//节点图片
stringdata=num.ToString();//节点对应数据
num++;
//装载示例,将新建的节点添加到TreeView
TreeNodenode=newTreeNode(text,data,image);//createanewnode
treeView.Nodes.Add(node);
//编辑示例:
将当前节点的生日更改为当前日期
birthday.SelectSingleNode("date").InnerText=DateTime.Now.ToString();
//删除示例:
将当前节点删除
birthday.ParentNode.RemoveChild(birthday);
}
dom.Save();
回答二
这是以前自己做过的一个测试。
楼主可以参考一下。
=======================bookstore.XML内容====================
xmlversion="1.0"encoding="gb2312"?
>
CS从入门到精通候捷
58.3
CS从入门到精通候捷
58.3
=======================读取========================
XmlDocumentdoc=newXmlDocument();
doc.Load(@"d:
\bookstore.xml");
XmlElementroot=doc.DocumentElement;
MessageBox.Show(root.SelectNodes("book")[0].InnerText);
=======================添加=========================
XmlDocumentxmlDoc=newXmlDocument();
xmlDoc.Load(@"d:
\bookstore.xml");
XmlNoderoot=xmlDoc.SelectSingleNode("bookstore");//查找
XmlElementxe1=xmlDoc.CreateElement("book");//创建一个节点
xe1.SetAttribute("genre","李赞红");//设置该节点的genre属性
xe1.SetAttribute("ISBN","2-3631-4");//设置该节点的ISBN属性
XmlElementxesub1=xmlDoc.CreateElement("title");//添加一个名字为title的子节点
xesub1.InnerText="CS从入门到精通";//设置文本
xe1.AppendChild(xesub1);//把title添加到节点中
XmlElementxesub2=xmlDoc.CreateElement("author");
xesub2.InnerText="候捷";
xe1.AppendChild(xesub2);
XmlElementxesub3=xmlDoc.CreateElement("price");
xesub3.InnerText="58.3";
xe1.AppendChild(xesub3);
root.AppendChild(xe1);//把book添加到根节点中
xmlDoc.Save(@"d:
\bookstore.xml");
======================修改========================
XmlDocumentxmlDoc=newXmlDocument();
xmlDoc.Load(@"d:
\bookstore.xml");
XmlNodeListnodeList=xmlDoc.SelectSingleNode("bookstore").ChildNodes;//获取bookstore节点的所有子节点
foreach(XmlNodexninnodeList)//遍历所有名字为bookstore的子节点
{
XmlElementxe=(XmlElement)xn;//将子节点类型转换为XmlElement类型
if(xe.GetAttribute("genre")=="李赞红")//如果genre属性值为“李赞红”
{
xe.SetAttribute("genre","update李赞红");//则修改该属性为“update李赞红”
XmlNodeListnls=xe.ChildNodes;//继续获取xe(xn)子节点的所有子节点
foreach(XmlNodexn1innls)//遍历
{
XmlElementxe2=(XmlElement)xn1;//转换类型
if(xe2.Name=="author")//如果找到
{
xe2.InnerText="亚胜";//则修改
break;//找到退出来
}
}
break;
}
}
xmlDoc.Save(@"d:
\bookstore.xml");//保存。
========================删除=========================
XmlDocumentxmlDoc=newXmlDocument();
xmlDoc.Load(@"d:
\bookstore.xml");
XmlNodeListxnl=xmlDoc.SelectSingleNode("bookstore").ChildNodes;
foreach(XmlNodexninxnl)
{
XmlElementxe=(XmlElement)xn;
if(xe.GetAttribute("genre")=="fantasy")
{
xe.RemoveAttribute("genre");//删除genre属性
}
elseif(xe.GetAttribute("genre")=="update李赞红")
{
xe.RemoveAll();//删除该节点的全部内容
}
}
xmlDoc.Save(@"d:
\bookstore.xml");
回答三
方法一:
使用XML控件
<%@PageLanguage="C#"%>
读取XML方法一
Xmlid="xml1"DocumentSource="grade.xml"runat="server"/>
方法二:
使用DOM技术
<%@PageLanguage="C#"%>
<%@ImportNamespace="System.Xml"%>
<%@ImportNamespace="System.Xml.Xsl"%>
voidPage_Load(Objectsender,EventArgse)
{
XmlDocumentdoc=newXmlDocument();
doc.Load(Server.MapPath("grade.xml"));
xml1.Document=doc;
}
读取XML方法二
Xmlid="xml1"runat="server"/>
方法三:
使用DataSet对象
<%@PageLanguage="C#"%>
<%@ImportNamespace="System.Data"%>
<%@ImportNamespace="System.Data.OleDb"%>
voidPage_Load(Objectsender,EventArgse)
{
DataSetobjDataSet=newDataSet();
objDataSet.ReadXml(Server.MapPath("grade.xml"));
dgEmployees.DataSource=objDataSet.Tables["student"].DefaultView;
dgEmployees.DataBind();
}
读取XML方法三
DataGridid="dgEmployees"runat="server"/>