C#程序:如何创建xml文件以及xml文件的增、删、改、查

来源:互联网 发布:淘宝的雪肌精是真的吗 编辑:程序博客网 时间:2024/05/28 23:12
其实今天的这篇博文,是对请几天发表的博文的一个总结,只是想把xml文件的增删改查结合起来,这样更容易让初学的朋友理解,废话也不多说了,开始吧!

下面是我把我在vs环境下写的代码ctrl+V然后ctrl+V了的,课根据自己的需要执行相应的方法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Xml;
using System.IO;
namespace WriteXml
{
class Program
{
static void Main(string[] args)
{
//createXml();//创建文件和添加基本数据,便于之后操作实验
//addItem();//追加数据
readtext();//读取数据
//updatexml();//更新数据
//delnode();//删除数据
}

private static void createXml()
{
XmlTextWriter writer = new XmlTextWriter("titles.xml", null);
//使用自动缩进便于阅读
writer.Formatting = Formatting.Indented;

//写入根元素
writer.WriteStartElement("items");
writer.WriteStartElement("item");
//写入属性及属性的名字
writer.WriteAttributeString("类别", "文学");
writer.WriteAttributeString("品质", "优");
//加入子元素
writer.WriteElementString("title", "毛著");
writer.WriteElementString("author", "毛泽东");
writer.WriteElementString("price", "10.0");
//关闭根元素,并书写结束标签
writer.WriteEndElement();
writer.WriteEndElement();
//将XML写入文件并且关闭XmlTextWriter
writer.Close();
}
private static void addItem()
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("titles.xml");
XmlNode root = xmlDoc.SelectSingleNode("items");
XmlElement xe1 = xmlDoc.createElement_x("item");
xe1.SetAttribute("类别", "张三");
xe1.SetAttribute("品质", "老师");

XmlElement xmlsub1 = xmlDoc.createElement_x("title");
xmlsub1.InnerText = "wahahha";
xe1.AppendChild(xmlsub1);

XmlElement xmlsub2 = xmlDoc.createElement_x("author");
xmlsub2.InnerText = "三毛";
xe1.AppendChild(xmlsub2);

XmlElement xmlsub3 = xmlDoc.createElement_x("Price");
xmlsub3.InnerText = "15.00";
xe1.AppendChild(xmlsub3);

root.AppendChild(xe1);
xmlDoc.Save("titles.xml");
}

private static void readtext()
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("titles.xml");
XmlNode xn = xmlDoc.SelectSingleNode("items");

XmlNodeList xnl=xn.ChildNodes;

foreach (XmlNode xnf in xnl)
{
XmlElement xe = (XmlElement)xnf;
Console.Write("类别"+xe.GetAttribute("类别")+" 品质 ");//显示属性值
Console.WriteLine(xe.GetAttribute("品质"));

XmlNodeList xnf1 = xe.ChildNodes;
foreach (XmlNode xn2 in xnf1)
{
Console.WriteLine(xn2.InnerText);//显示子节点点文本
}
Console.WriteLine();
}
}

private static void updatexml()
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("titles.xml");
XmlNode xns = xmlDoc.SelectSingleNode("items");

XmlNodeList xnl = xns.ChildNodes;
foreach (XmlNode xn in xnl)
{
XmlElement xe = (XmlElement)xn;
if (xe.GetAttribute("类别") == "文学")
{
xe.SetAttribute("类别","娱乐");

}
else
{
xe.SetAttribute("类别", "文学");
}

XmlNodeList xnl2 = xe.ChildNodes;
foreach (XmlNode xn2 in xnl2)
{
XmlElement xe2 = (XmlElement)xn2;
if (xe2.Name=="price")
{
if (xe2.InnerText == "10.00")
xe2.InnerText = "15.00";
else
xe2.InnerText = "10.00";
}
//break;
}
//break;
}
xmlDoc.Save("titles.xml");
Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
readtext();
}
private static void delnode()
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("titles.xml");

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

foreach (XmlNode xn in xnl)
{
XmlElement xe = (XmlElement)xn;
if (xe.GetAttribute("类别") == "文学")
{
xe.RemoveAttribute("类别");//删除genre属性
}
else if (xe.GetAttribute("类别") == "娱乐")
{
xe.RemoveAll();//删除该节点的全部内容
}
}
xmlDoc.Save("titles.xml");

Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
readtext();
}

}
}

好了到此对xml文件的简单的操作已经结束了,如果只是偶尔用一下,而且是简单的操作这些已经够了,如果深一点的,那么就自己在稍稍研究一下。只要这篇博文你看懂了理解了,xml就变得弱小而任你宰割了!哈哈