首先学习Xml我们先认识几个类 XmlReader(Xml读取器) XmlWriter(Xml写入器) XmlReaderSettings(读取器支持的功能) XmlWriterSettings(写入器支持的功能)
XmlDocument (Xml文档)
Xml文档
<?xml version="1.0" encoding="utf-8"?>
<books>
<book>
<author>张三</author>
<publisher>清华大学出版社</publisher>
<date>2009-1-1</date>
<name>ASP.NET实训教程</name>
<isbn>978-7-333-20981-4</isbn>
<price>50.00</price>
</book>
<book>
<author>李四</author>
<publisher>机械工业出版社</publisher>
<date>2009-6-8</date>
<name>ASP.NET详解</name>
<isbn>978-7-333-20332-1</isbn>
<price>45.00</price>
</book>
<book>
<author>王五</author>
<publisher>电子工业出版社</publisher>
<date>2010-10-9</date>
<name>C#程序设计</name>
<isbn>978-7-311-21231-2</isbn>
<price>50.00</price>
</book>
<book>
<author>张飞</author>
<publisher>机械工业出版社</publisher>
<date>2008-4-12</date>
<name>.NET设计模式</name>
<isbn>978-7-310-12341-9</isbn>
<price>30.00</price>
</book>
</books>
读取Xml文集里的内容
通过读取Xml文档中有几个<book>节点来判断有几本书
//设置XmlReader的一组功能
XmlReaderSettings XmlReadSet = new XmlReaderSettings();
XmlReadSet.CheckCharacters = true;
XmlReadSet.IgnoreComments = true;
XmlReadSet.IgnoreProcessingInstructions = false;
XmlReadSet.IgnoreWhitespace = true;
//创建以个Xml读取对象(参数必须为物理路径)
using(XmlReader XmlRead = XmlReader.Create(Server.MapPath("books.xml"),XmlReadSet))
{
while (XmlRead.Read())
{
//获取节点的类型为元素
if (XmlRead.NodeType == XmlNodeType.Element)
{
if (XmlRead.Name == "book")
{
sum++;
}
}
}
Response.Write("有"+sum+"本书");
}
另一种获取Xml文档的方法是用 XmlDocument
读取Xml并把每本书的书名放入DropDownList中
XmlDocument XmlDoc;
protected void Page_Load(object sender, EventArgs e)
{
//声明一个Xml文档的实例
XmlDoc = new XmlDocument();
XmlDoc.Load(Server.MapPath("books.xml"));
XmlNodeList XmlList =XmlDoc.GetElementsByTagName("name");
foreach (XmlNode XmlNo in XmlList)
{
DropDownList1.Items.Add(XmlNo.InnerText);
}
}
下面在获取DropDowmList所选书的其他信息
protected void Button1_Click(object sender, EventArgs e)
{
//获取子节点name=dropdownlist.text的父节点book
XmlNode XmlDoc2 = XmlDoc.DocumentElement.SelectSingleNode("book[name='" + DropDownList1.SelectedItem.Text + "']");
//获取父节点XmlDoc2下的指定的子节点的值
string a = XmlDoc2.SelectSingleNode("author").InnerText;
string b = XmlDoc2.SelectSingleNode("publisher").InnerText;
string c = XmlDoc2.SelectSingleNode("date").InnerText;
string d = XmlDoc2.SelectSingleNode("isbn").InnerText;
}
向Xml文档中添加内容
XmlWriter
XmlWriterSettings XmlWriteSet = new XmlWriterSettings();
//编码方式
XmlWriteSet.Encoding = System.Text.Encoding.UTF8;
XmlWriteSet.Indent = true;
using (XmlWriter XmlWrite = XmlWriter.Create(Server.MapPath("bookss.xml"),XmlWriteSet))
{
//开始写入文件
XmlWrite.WriteStartDocument();
//Xml格式<books>
XmlWrite.WriteStartElement("books");
//<book>
XmlWrite.WriteStartElement("book");
//<name>
XmlWrite.WriteStartElement("name");
//<book>三国演义</book>
XmlWrite.WriteString("三国演义");
//</name>
XmlWrite.WriteEndElement();
//<publisher>
XmlWrite.WriteStartElement("publisher");
//<publisher>清华大学出版社</publisher>
XmlWrite.WriteString("清华大学出版社");
//</publisher>
XmlWrite.WriteEndElement();
//<date>
XmlWrite.WriteStartElement("date");
//<date>2012-12-21</date>
XmlWrite.WriteString("2012-12-21");
//</date>
XmlWrite.WriteEndElement();
//<....>
XmlWrite.WriteStartElement("author");
//<...>*******</...>
XmlWrite.WriteString("战三");
//</....>
XmlWrite.WriteEndElement();
//<....>
XmlWrite.WriteStartElement("price");
//<...>*******</...>
XmlWrite.WriteString("50.0");
//</....>
XmlWrite.WriteEndElement();
//</book>一本书写完了
XmlWrite.WriteEndElement();
//<book>两本一样的书
XmlWrite.WriteStartElement("book");
//<name>
XmlWrite.WriteStartElement("name");
//<book>三国演义</book>
XmlWrite.WriteString("三国演义");
//</name>
XmlWrite.WriteEndElement();
//<publisher>
XmlWrite.WriteStartElement("publisher");
//<publisher>清华大学出版社</publisher>
XmlWrite.WriteString("清华大学出版社");
//</publisher>
XmlWrite.WriteEndElement();
//<date>
XmlWrite.WriteStartElement("date");
//<date>2012-12-21</date>
XmlWrite.WriteString("2012-12-21");
//</date>
XmlWrite.WriteEndElement();
//<....>
XmlWrite.WriteStartElement("author");
//<...>*******</...>
XmlWrite.WriteString("战三");
//</....>
XmlWrite.WriteEndElement();
//<....>
XmlWrite.WriteStartElement("price");
//<...>*******</...>
XmlWrite.WriteString("50.0");
//</....>
XmlWrite.WriteEndElement();
//</book>二本书写完了
XmlWrite.WriteEndElement();
//Xml格式</books>
XmlWrite.WriteEndElement();
}
}