标签:
XML存储数据的一种文本格式,以节点的方式存储,类似html,只是节点名称可以自己定义。
1.创建XML
public void fun_createXML() {
XmlNode xmlnode;
XmlElement xmlelem;
XmlDocument xmldoc = new XmlDocument();
//创建根节点
XmlDeclaration xmldecl = xmldoc.CreateXmlDeclaration("1.0", "gb2312", null);
xmldoc.AppendChild(xmldecl);
//创建员工节点容器
xmlelem = xmldoc.CreateElement("", "Employees", "");
xmldoc.AppendChild(xmlelem);
//放三个员工到容器里面
for (int i = 0; i < 3; i++)
{
//xmldoc.SelectSingleNode()查找某个节点
xmlnode = xmldoc.SelectSingleNode("Employees");
//创建节点
XmlElement xe = xmldoc.CreateElement("node");
xe.SetAttribute("name", "evan");//设置属性
xe.SetAttribute("age", "27");
//创建节点
XmlElement kemu1 = xmldoc.CreateElement("title");
kemu1.SetAttribute("id", "title");//设置属性
kemu1.InnerText = "javascript";//设置文本
xe.AppendChild(kemu1);//填充到xe节点中
XmlElement score = xmldoc.CreateElement("score");
score.InnerText = "86.5";
xe.AppendChild(score);
xmlnode.AppendChild(xe);
}
//在项目根目录创建XML文件
xmldoc.Save(Server.MapPath("data3.xml"));
}
2.读取XML
public void fun_GetXML() {
//System.IO.StreamReader myfile =
// new System.IO.StreamReader(Server.MapPath("data3.xml"),System.Text.Encoding.Default);
//string mystring = myfile.ReadToEnd();//以文本的方式获取全部文本
//myfile.Close();
XmlDocument xd = new XmlDocument();
xd.Load(Server.MapPath("data3.xml"));
//获取所有子节点
XmlNodeList xnlist = xd.SelectSingleNode("Employees").ChildNodes;
for (int i = 0; i < xnlist.Count; i++) {
XmlElement xe = (XmlElement)xnlist[i];
Response.Write("名字是:"+xe.GetAttribute("name")+"</br>");//获取属性名称
//获取子节点
XmlNodeList xn2=xe.ChildNodes;
for (int y = 0; y < xn2.Count; y++)
{
XmlElement xe2 = (XmlElement)xn2[y];
if (xe2.Name == "title")//节点名称
{
Response.Write("科目是:" + xe2.InnerText + "</br>");
}
else {
Response.Write("分数数:" + xe2.InnerText + "</br>");
}
}
}
}
3.修改XML
public void fun_updateXMLText()
{
XmlDocument xd = new XmlDocument();
xd.Load(Server.MapPath("data3.xml"));
//获取所有子节点
XmlNodeList nodelist = xd.SelectSingleNode("Employees").ChildNodes;
//循环子节点
foreach (XmlNode x in nodelist)
{
//转换
XmlElement xe = (XmlElement)x;
if (xe.Name == "NEWnode")
{//判断节点名称
xe.InnerText = "bbbbbbbbbb";//修改里面的文本
}
}
xd.Save(Server.MapPath("data3.xml"));//重新保存
}
4.添加XML
public void fun_addNodeXML() {
XmlDocument xd = new XmlDocument();
xd.Load(Server.MapPath("data3.xml"));
XmlNode xn = xd.SelectSingleNode("Employees");
XmlElement xe = xd.CreateElement("NEWnode");
xe.InnerText = "NEWnodeTEXT";
xn.AppendChild(xe);
xd.Save(Server.MapPath("data3.xml"));
}
5.删除XML节点
XmlDocument xmlDoc=new XmlDocument();
xmlDoc.Load( Server.MapPath("data.xml") );
XmlNodeList xnl=xmlDoc.SelectSingleNode("Employees").ChildNodes;
foreach(XmlNode xn in xnl)
{
XmlElement xe=(XmlElement)xn;
xe.RemoveAttribute("genre");//删除genre属性
XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点
foreach(XmlNode xn1 in nls)//遍历
{
XmlElement xe2=(XmlElement)xn1;//转换类型
if(xe2.Name=="flag")//如果找到
{
xe.RemoveChild(xe2);//则删除
}
}
}
xmlDoc.Save( Server.MapPath("data.xml") );
标签:
原文地址:http://www.cnblogs.com/Evan-Pei/p/4691576.html