xml读取和写入---------xml学习笔记

前端之家收集整理的这篇文章主要介绍了xml读取和写入---------xml学习笔记前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1、需要的命名空间:
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Xml;

2、数据来源:
Idictionary<string,string> source = new Dictionary<string,string>()
source.Add("name","神州侠侣");
source.Add("quantity","50");
source.Add("price","45.55");
source.Add("author","tiger");

3、写入后的xml文件样式:
<?xml version="1.0" encoding="utf-8"?>
<books>
<book>
<id>1</id>
<name>神州侠侣</name>
<quantity>50</quantity>
<price>45.55</price>
<author>tiger</author>
</book>
</books>

3、采用 XmlTextWriter 写入数据,该方法会新建一个或改写现有的xml文件
XmlTextWriter xml = new XmlTextWriter(Server.MapPath("/data/test.xml"),Encoding.UTF-8);
xml.Formatting = Formatting.Indented;
xml.WriteStartDocument();
xml.WriteStartElement("books");
xml.WriteStartElement("book");
foreach (KeyValuePair<string,string> c in source)
{
xml.WriteStartElement(c.Key);
xml.WriteCData(c.value);
xml.WriteEndElement();
}
xml.WriteEndElement();
xml.WriteEndElement();
xml.WriteEndDocument();
xml.Flush();
xml.Close();

4、采用 XmlDocument 写入数据,该方法会在现有的xml文件基础上追加数据,但不会创建新的文件
string file = Server.MapPath("/data/test.xml");
if(File.Exists(file))
{
XmlDocument xml = new XmlDocument();
xml.Load(file);

//以下代码自动创建序号时使用,若你的数据源本身有序号,则可忽略
XmlNodeList node = xml.SelectNodes("books/book");
int count = Convert.ToInt32(node.Item(node.Count - 1).ChildNodes.Item(0).InnerText);
count++;

XmlElement ab = xml.CreateElement("book"); StringBuilder s = new StringBuilder(); s.Append("<id><![CDATA[" + count.ToString() + "]]></id>"); foreach(KeyValuePair<string,string> c in source) { s.Append("<" + c.Key + "><![CDATA[" + c.Value + "]]></" + c.Key + ">"); } ab.InnerXml = s.ToString(); xml.DocumentElement.AppendChild(ab); xml.Save(file); } else { //文件不存在,这里可以采用第一种方法写入数据 }

猜你在找的XML相关文章