1 创建XML
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
namespace 创建XML
{
class Program
{
static void Main(string[] args)
{
XmlDocument doc = new XmlDocument(); //创建XML文档对象
XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null); //创建第一行描述信息,并添加到doc文档中
doc.AppendChild(dec);
XmlElement books = doc.CreateElement("Books"); //创建根节点,并添加到doc文档中
doc.AppendChild(books);
XmlElement book1 = doc.CreateElement("Book"); //创建一级子节点Book,将Book添加到根节点
books.AppendChild(book1);
book1.SetAttribute("Index", "1");
book1.SetAttribute("Title", "红楼梦");
//给book1添加子节点
XmlElement price1 = doc.CreateElement("Price");
price1.InnerText = "10元";
book1.AppendChild(price1);
XmlElement des1 = doc.CreateElement("Des");
des1.InnerText = "好看";
book1.AppendChild(des1);
XmlElement pages1 = doc.CreateElement("Pages");
pages1.InnerText = "800页";
book1.AppendChild(pages1);
XmlElement book2 = doc.CreateElement("Book"); //创建一级子节点Book,将Book添加到根节点
books.AppendChild(book2);
book2.SetAttribute("Index", "2");
book2.SetAttribute("Title", "三国演义");
//给book2添加子节点
XmlElement price2 = doc.CreateElement("Price");
price2.InnerText = "20元";
book2.AppendChild(price2);
XmlElement des2 = doc.CreateElement("Des");
des2.InnerText = "还可以";
book2.AppendChild(des2);
XmlElement pages2 = doc.CreateElement("Pages");
pages2.InnerText = "600页";
book2.AppendChild(pages2);
doc.Save("Books.xml");
Console.WriteLine("保存成功");
Console.ReadKey();
}
}
}
2 追加XML
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Xml;
namespace 追加XML
{
class Program
{
static void Main(string[] args)
{
XmlDocument doc = new XmlDocument();
XmlElement books;
if (File.Exists("Books.xml"))
{
doc.Load("Books.xml"); //如果文件存在 加载XML
books = doc.DocumentElement; //获得文件的根节点
}
else
{
//如果文件不存在,重新创建
XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null);
doc.AppendChild(dec);
books = doc.CreateElement("Books");
doc.AppendChild(books);
}
XmlElement book1 = doc.CreateElement("Book"); //创建一级子节点Book,将Book添加到根节点
books.AppendChild(book1);
book1.SetAttribute("Index", "n");
book1.SetAttribute("Title", "西游记");
//给book1添加子节点
XmlElement price1 = doc.CreateElement("Price");
price1.InnerText = "30元";
book1.AppendChild(price1);
XmlElement des1 = doc.CreateElement("Des");
des1.InnerText = "非常好看";
book1.AppendChild(des1);
XmlElement pages1 = doc.CreateElement("Pages");
pages1.InnerText = "550页";
book1.AppendChild(pages1);
doc.Save("Books.xml");
Console.WriteLine("保存成功");
Console.ReadKey();
}
}
}
3 读取与修改XML
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
namespace 读取与修改
{
class Program
{
static void Main(string[] args)
{
XmlDocument doc = new XmlDocument();
doc.Load("Books.xml"); //加载要读取的XML
XmlElement books = doc.DocumentElement; //获得根节点
//读取标签内容
XmlNodeList xnl1 = books.ChildNodes; //获得子节点 返回节点的集合
foreach (XmlNode item in xnl1)
{
Console.WriteLine(item.InnerText); //获取或设置节点及其所有子节点的串联值。
}
//读取标签属性
XmlNodeList xnl2 = doc.SelectNodes("/Books/Book");
foreach (XmlNode node in xnl2)
{
Console.Write(node.Attributes["Title"].Value);
Console.WriteLine(node.Attributes["Index"].Value);
}
//修改标签内容的值
XmlNode xn = doc.SelectSingleNode("/Books/Book/Price");
xn.InnerText = "99.99元";
doc.Save("NewBooks.xml");
Console.WriteLine("保存成功");
//修改标签属性的值1
//XmlNode xn = doc.SelectSingleNode("/Books/Book[@Title='西游记']"); //"Books.xml"中有两个'西游记',只匹配第一个
//xn.Attributes["Title"].Value = "西游记1";
//xn.Attributes["Index"].Value = "3";
//doc.Save("NewBooks.xml");
//Console.WriteLine("保存成功");
//修改标签属性的值2
//XmlNodeList xn = doc.SelectNodes("/Books/Book[@Title='西游记']"); //"Books.xml"中有两个'西游记',只匹配第一个
//foreach (XmlNode node in xnl2)
//{
// node.Attributes["Title"].Value = "西游记1";
// node.Attributes["Index"].Value = "3";
//}
//doc.Save("NewBooks.xml");
//Console.WriteLine("保存成功");
//修改标签属性的值3
//XmlNodeList xn = doc.SelectNodes("/Books/Book"); //全部修改
//foreach (XmlNode node in xn)
//{
// node.Attributes["Title"].Value = "西游记1";
// node.Attributes["Index"].Value = "3";
//}
//doc.Save("NewBooks.xml");
//Console.WriteLine("保存成功");
Console.ReadKey();
}
}
}