XML
XML 可拓展标记语言,此语言用于传输和存储数据;
1、其主要标识在于文件首行如下;
<?xml version="1.0" encoding="utf-8"?>
2、XML严格区分大小写,与HTML相似,标签都是成对出现,不同于HTML的是其标签是自定义,属性也是;
如下为示例代码:
<Books>
<Book> /*标签*/
<Name>C#编程</Name>
<Price>100</Price>
<Gift BookMark="2张" ColourPen="1支" />
<Name>JAVA编程</Name>
<Price>100</Price>
<Gift BookMark="2个" ColourPen="1支" />
</Book>
</Books>
3、使用C#创建XML文件
步骤分为:1.引用命名空间-->2.创建XML文档对象-->3.创建XML文档第一行信息,并添加到XML文档中-->4.创建根节点-->5.给根节点添加子节点-->6.给book1添加子节点-->7.保存文件;
//通过代码创建XML
//1、引用命名空间
//2、创建XML文档对象
XmlDocument xmlDoc = new XmlDocument();
//全局根节点对象
//3、创建XML文档第一行信息,并添加到XML文档中
XmlDeclaration xmlDec = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null);
//将第一行添加到XML文档中
xmlDoc.AppendChild(xmlDec);
//4、创建根节点 代码中创建XML分为两种调用:1. XmlNode 为节点 2. XmlElement 为元素。
// xml中每一项都为元素,节点为标签,元素包含节点
XmlElement books = xmlDoc.CreateElement("Books");
//添加books标签到xml中
xmlDoc.AppendChild(books);
//5、给根节点添加子节点
XmlElement book1 = xmlDoc.CreateElement("Book");
books.AppendChild(book1);
//6、给book1添加子节点
XmlElement name1 = xmlDoc.CreateElement("Name");
//给标签添加文本 1、InnerText 添加纯文本,字符用转义字符替换 2、InnerXml 输出标签格式文本
name1.InnerText = "<C#编程>";
book1.AppendChild(name1);
//再添加节点
XmlElement price1 = xmlDoc.CreateElement("Price");
price1.InnerText = "100";
book1.AppendChild(price1);
//再添加节点
XmlElement gift1 = xmlDoc.CreateElement("Gift");
//给节点添加属性
gift1.SetAttribute("BookMark", "2张");
gift1.SetAttribute("ColourPen", "1支");
book1.AppendChild(gift1);
XmlElement name2 = xmlDoc.CreateElement("Name");
//给标签添加文本 1、InnerText 添加纯文本,字符用转义字符替换 2、InnerXml 输出标签格式文本
name2.InnerXml = "<p>JAVA编程</p>";
book1.AppendChild(name2);
//再添加节点
XmlElement price2 = xmlDoc.CreateElement("Price");
price2.InnerText = "100";
book1.AppendChild(price2);
//再添加节点
XmlElement gift2 = xmlDoc.CreateElement("Gift");
//给节点添加属性
gift2.SetAttribute("BookMark", "2张");
gift2.SetAttribute("ColourPen", "1支");
book1.AppendChild(gift2);
//保存
xmlDoc.Save("Books.xml");
Console.Write("保存成功");
Console.ReadKey();
4、追加XML
//全局根节点对象
XmlElement books;
//追加XML文档
//判断XML文件是否存在,
if (File.Exists("Books.xml"))//如果存在
{
//如果存在,则加载XML
xmlDoc.Load("Books.xml");
//获得文件的根节点
books = xmlDoc.DocumentElement;
}
else//如果不存在
{
//3、创建XML文档第一行信息,并添加到XML文档中
XmlDeclaration xmlDec = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null);
//将第一行添加到XML文档中
xmlDoc.AppendChild(xmlDec);
//4、创建根节点 代码中创建XML分为两种调用:1. XmlNode 为节点 2. XmlElement 为元素。
// xml中每一项都为元素,节点为标签,元素包含节点
books = xmlDoc.CreateElement("Books");
//添加books标签到xml中
xmlDoc.AppendChild(books);
}
// 5、给节点添加子节点(重复第5步骤)
...........
5、读取XML(基础XML,不添加属性等)
//加载要读取的XML
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("Books.xml");
//获得根节点
XmlElement books = xmlDoc.DocumentElement;
//获得子节点,返回子节点集合
XmlNodeList xnl = books.ChildNodes;
Console.WriteLine("读取成功");
//遍历输出
foreach (XmlNode item in xnl)
{
Console.WriteLine(item.InnerText);
}
Console.ReadKey();
5、读取XML节点属性
//加载要读取的XML
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("Books.xml");
//选择有属性的根节点
XmlNodeList xnl = xmlDoc.SelectNodes("/Books/Book/Gift");
Console.WriteLine("读取成功");
foreach (XmlNode item in xnl)
{
Console.WriteLine(item.Attributes["BookMark"].Value);
Console.WriteLine(item.Attributes["ColourPen"].Value);
}
Console.ReadKey();
5、删除XML节点
//加载要读取的XML
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("Books.xml");
//选择要删除的根节点
XmlNode xn = xmlDoc.SelectSingleNode("/Books/Book/Name");
xn.RemoveAll();
//保存
xmlDoc.Save("Books.xml");
Console.WriteLine("删除成功");
Console.ReadKey();
总结:
需要对已有XML文件进行操作(追加、读取内容,删除内容),应在操作之前对XML文件进行读取操作,并赋值给XmlDocument实例对象,再调用对象方法对其进行操作;
网友评论