Xml初步学习

来源:互联网 发布:matlab k聚类算法 编辑:程序博客网 时间:2024/06/14 01:10

首先学习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();            }        }


原创粉丝点击