读取xml文件

读取xml文件

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <script>
        function readxml() {
            if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
                xmlhttp = new XMLHttpRequest();
            }
            else {// code for IE6, IE5
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.open("GET", "XMLFile1.xml", false);
            xmlhttp.send();
            xmlDoc = xmlhttp.responseXML;

            document.write("<table border='1'>");
            var x = xmlDoc.getElementsByTagName("CD");
            for (i = 0; i < x.length; i++) {
                document.write("<tr><td>");
                document.write(x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue);
                document.write("</td><td>");
                document.write(x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue);
                document.write("</td><td>");
                document.write(x[i].getElementsByTagName("COUNTRY")[0].childNodes[0].nodeValue);
                document.write("</td><td>");
                document.write(x[i].getElementsByTagName("COMPANY")[0].childNodes[0].nodeValue);
                document.write("</td><td>");
                document.write(x[i].getElementsByTagName("PRICE")[0].childNodes[0].nodeValue);
                document.write("</td><td>");
                document.write(x[i].getElementsByTagName("YEAR")[0].childNodes[0].nodeValue);

                document.write("</td></tr>");
            }
            document.write("</table>");
        }
    </script>
</head>
<body>

    <input id="Button1" type="button" value="button" οnclick="readxml()" />
</body>


</html>

   

//1: xn 代表一个结点
            //2: xn.Name;//这个结点的名称
            //3: xn.Value;//这个结点的值
            //4: xn.ChildNodes;//这个结点的所有子结点
            //5: xn.ParentNode;//这个结点的父结点

            XmlDocument xmlDoc = new XmlDocument();
            XmlReaderSettings settings = new XmlReaderSettings();
            settings.IgnoreComments = true;//忽略文档里面的注释
            XmlReader reader = XmlReader.Create(savePath, settings);
            xmlDoc.Load(reader);           
            

            // 得到根节点bookstore
            XmlNode xn = xmlDoc.SelectSingleNode("bookstore");

            // 得到根节点的所有子节点
            XmlNodeList xnl = xn.ChildNodes;

            
            List<BookXmlModel> bookxml = new List<BookXmlModel>();

            foreach (XmlNode xn1 in xnl)
            {
                Andu.Model.BookXmlModel bookModel = new BookXmlModel();
                // 将节点转换为元素,便于得到节点的属性值
                XmlElement xe = (XmlElement)xn1;
                // 得到Type和ISBN两个属性的属性值
                bookModel.BookISBN = xe.GetAttribute("ISBN").ToString();
                bookModel.BookType = xe.GetAttribute("Type").ToString();
                // 得到Book节点的所有子节点
                XmlNodeList xnl0 = xe.ChildNodes;
                bookModel.BookName = xnl0.Item(0).InnerText;
                bookModel.BookAuthor = xnl0.Item(1).InnerText;
                bookModel.BookPrice = Convert.ToDouble(xnl0.Item(2).InnerText);
                bookxml.Add(bookModel);
            }
            Repeater1.DataSource = bookxml;
            Repeater1.DataBind();

            reader.Close();

 

<?xml version="1.0" encoding="utf-8"?>
 <bookstore>
   <!--记录书本的信息-->
   <book Type="必修课" ISBN="7-111-19149-2">
     <title>数据结构</title>
     <author>严蔚敏</author>
     <price>30.00</price>
   </book>
   <book Type="必修课" ISBN="7-111-19149-3">
     <title>路由型与交换型互联网基础</title>
     <author>程庆梅</author>
     <price>27.00</price>
   </book>
   <book Type="必修课" ISBN="7-111-19149-4">
     <title>计算机硬件技术基础</title>
     <author>李继灿</author>
     <price>25.00</price>
   </book>
   <book Type="必修课" ISBN="7-111-19149-5">
     <title>软件质量保证与管理</title>
     <author>朱少民</author>
     <price>39.00</price>
   </book>
   <book Type="必修课" ISBN="7-111-19149-6">
     <title>算法设计与分析</title>
     <author>王红梅</author>
     <price>23.00</price>
   </book>
   <book Type="选修课" ISBN="7-111-19149-1">
     <title>计算机操作系统</title>
     <author>7-111-19149-1</author>
     <price>28</price>
   </book>
 </bookstore>

  -------------------

cs文件完整代码

using Andu.Model;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml;

namespace Web
{
    public partial class WebForm8 : System.Web.UI.Page
    {
        
        
        protected void Page_Load(object sender, EventArgs e)
        {
            
        }

        protected void Button1_Click(object sender, EventArgs e)
        {

            HttpCookie cookie = new HttpCookie("filexmlc");

            //上传xml
            string savePath = Server.MapPath("~/upload/");//指定上传文件在服务器上的保存路径
            //检查服务器上是否存在这个物理路径,如果不存在则创建
            if (!System.IO.Directory.Exists(savePath))
            {
                System.IO.Directory.CreateDirectory(savePath);
            }
            if (FileUpload1.HasFile)
            {
                //获取上传文件的后缀(包括.)
                string fileExtension = Path.GetExtension(this.FileUpload1.FileName).ToLower();
                string filename = DateTime.Now.ToString("yyyyMMddHHmmss") + fileExtension;
                savePath = savePath + filename;
                FileUpload1.SaveAs(savePath);
                string aller = string.Format("<a href='upload/{0}'>upload/{0}</a>", filename);
                Response.Write(aller);

                cookie.Value = savePath;
                Response.AppendCookie(cookie);
            }
            else
            {
                Response.Write("你还没有选择上传文件!");
            }

            //return;

            //todo

            //if (File.Exists(savePath))
            //{
            //    File.Delete(savePath);
            //}

            //return;

         
            //1: xn 代表一个结点
            //2: xn.Name;//这个结点的名称
            //3: xn.Value;//这个结点的值
            //4: xn.ChildNodes;//这个结点的所有子结点
            //5: xn.ParentNode;//这个结点的父结点

            XmlDocument xmlDoc = new XmlDocument();
            XmlReaderSettings settings = new XmlReaderSettings();
            settings.IgnoreComments = true;//忽略文档里面的注释
            XmlReader reader = XmlReader.Create(savePath, settings);
            xmlDoc.Load(reader);


            // 得到根节点bookstore
            XmlNode xn = xmlDoc.SelectSingleNode("bookstore");

            // 得到根节点的所有子节点book
            XmlNodeList xnl = xn.ChildNodes;


            List<BookXmlModel> bookxml = new List<BookXmlModel>();

            foreach (XmlNode xn1 in xnl)
            {
                Andu.Model.BookXmlModel bookModel = new BookXmlModel();
                // 将节点转换为元素,便于得到节点的属性值
                XmlElement xe = (XmlElement)xn1;
                // 得到Type和ISBN两个属性的属性值
                bookModel.BookISBN = xe.GetAttribute("ISBN").ToString();
                bookModel.BookType = xe.GetAttribute("Type").ToString();
                // 得到Book节点的所有子节点
                XmlNodeList xnl0 = xe.ChildNodes;
                bookModel.BookName = xnl0.Item(0).InnerText;
                bookModel.BookAuthor = xnl0.Item(1).InnerText;
                bookModel.BookPrice = Convert.ToDouble(xnl0.Item(2).InnerText);
                bookxml.Add(bookModel);
            }
            Repeater1.DataSource = bookxml;
            Repeater1.DataBind();


            reader.Close();

        }

        protected void Button2_Click(object sender, EventArgs e)
        {
            HttpCookie cookie = Request.Cookies["filexmlc"];
            string filename = cookie.Value;
             

            string BookISBN = TextBox1.Text.Trim();
            string BookType = TextBox2.Text.Trim();
            string BookName = TextBox3.Text.Trim();
            string BookAuthor = TextBox4.Text.Trim();
            string BookPrice = TextBox5.Text.Trim();

            if (File.Exists(filename))
            {
                XmlDocument xmlDoc = new XmlDocument();
                XmlReaderSettings settings = new XmlReaderSettings();
                settings.IgnoreComments = true;//忽略文档里面的注释
                XmlReader reader = XmlReader.Create(filename, settings);
                xmlDoc.Load(reader);

                XmlNode root = xmlDoc.SelectSingleNode("bookstore");

                XmlElement xelKey = xmlDoc.CreateElement("book");

                XmlAttribute xelType = xmlDoc.CreateAttribute("Type");
                xelType.InnerText = BookType;
                xelKey.SetAttributeNode(xelType);

                XmlAttribute xelISBN = xmlDoc.CreateAttribute("ISBN");
                xelISBN.InnerText = BookISBN;
                xelKey.SetAttributeNode(xelISBN);

                XmlElement xeltitle = xmlDoc.CreateElement("title");
                xeltitle.InnerText = BookName;
                xelKey.AppendChild(xeltitle);

                XmlElement xelAuthor = xmlDoc.CreateElement("author");
                xelAuthor.InnerText = BookAuthor;
                xelKey.AppendChild(xelAuthor);

                XmlElement xelprice = xmlDoc.CreateElement("price");
                xelprice.InnerText = BookPrice;
                xelKey.AppendChild(xelprice);

                root.AppendChild(xelKey);

                //
                reader.Close();
                xmlDoc.Save(filename);
                
                //cookie.Value = filename;
                //Response.AppendCookie(cookie);             



                // 得到根节点bookstore
                XmlNode xn = xmlDoc.SelectSingleNode("bookstore");

                // 得到根节点的所有子节点
                XmlNodeList xnl = xn.ChildNodes;


                List<BookXmlModel> bookxml = new List<BookXmlModel>();

                foreach (XmlNode xn1 in xnl)
                {
                    Andu.Model.BookXmlModel bookModel = new BookXmlModel();
                    // 将节点转换为元素,便于得到节点的属性值
                    XmlElement xe = (XmlElement)xn1;
                    // 得到Type和ISBN两个属性的属性值
                    bookModel.BookISBN = xe.GetAttribute("ISBN").ToString();
                    bookModel.BookType = xe.GetAttribute("Type").ToString();
                    // 得到Book节点的所有子节点
                    XmlNodeList xnl0 = xe.ChildNodes;
                    bookModel.BookName = xnl0.Item(0).InnerText;
                    bookModel.BookAuthor = xnl0.Item(1).InnerText;
                    bookModel.BookPrice = Convert.ToDouble(xnl0.Item(2).InnerText);
                    bookxml.Add(bookModel);
                }
                Repeater1.DataSource = bookxml;
                Repeater1.DataBind();

                reader.Close();
                //if (File.Exists(savePath))
                //{
                //    File.Delete(savePath);
                //}
            }
            else
            {
                Response.Write("你还没有选择上传文件22!");
            }
        }
    }
}

  

转载于:https://www.cnblogs.com/500k/p/4814274.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值