Xml初步学习

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值