.NET中XML操作(一)

本文主要介绍了在.NET环境中对XML的使用,包括使用DOM进行基本操作,XML文件的读取,以及添加、修改和删除XML节点的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

又到了今日总结学习的时刻了

今天上了xml和SSH

时间紧迫,快点放毒吧。

1.  掌握ASP.NET中使用DOM对XML的基本操作。

2.  掌握对XML文件的读取操作

3.  掌握对XML文件的添加、修改、删除节点的操作

lab1.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Xml;

 

namespace lab1

{

    publicpartialclasslab1 : System.Web.UI.Page

    {

     

        protectedvoid GetAllNodes(XmlNode node){

            Response.Write("<br><b>节点名称");

            Response.Write(node.LocalName);

            Response.Write("</b><br>节点类型");

            Response.Write(node.NodeType);

               Response.Write("<br><b>节点值:");

            if (node.NodeType == XmlNodeType.Element)

            {

                Response.Write("");

            }

            else

            {

                Response.Write(node.InnerText);

            }

            if (node.HasChildNodes) {

                foreach (XmlNode d in node.ChildNodes) {

                    GetAllNodes(d);

                } }

        }

        protectedvoid Page_Load(object sender, EventArgs e)

        {

            XmlDocument xmlDoc = newXmlDocument();

            xmlDoc.Load(Server.MapPath("图书信息.xml"));

            GetAllNodes(xmlDoc);

 

        }

    }

}

在spy中写好的xml拖进vs即可

图书信息.xml

<?xmlversion="1.0"encoding="GB2312"?>

<Booklist>

   <Book

      <BookID>000001</BookID>

      <BookType>计算机</BookType>

      <BookName>算法与数据结构</BookName>

      <Auth>严蔚敏陈文博</Auth>

      <Publisher>清华大学出版社</Publisher>

      <Price>24</Price>

      <PubDate>2002-1-1</PubDate>

      <Quantity>10</Quantity>

   </Book>

   <Book

      <BookID>000002</BookID>

      <BookType>计算机</BookType>

      <BookName>软件工程导论</BookName>

      <Auth>张海藩</Auth>

      <Publisher>清华大学出版社</Publisher>

      <Price>5.4</Price>

      <PubDate>1987-6-1</PubDate>

      <Quantity>5</Quantity>

   </Book>

   <Book

      <BookID>000003</BookID>

      <BookType>计算机</BookType>

      <BookName>XML/JSP网页编程教材</BookName>

      <Auth>吴艾</Auth>

      <Publisher>北京希望电子出版社</Publisher>

      <Price>46</Price>

      <PubDate>2001-7-1</PubDate>

      <Quantity>15</Quantity>

   </Book>

   <Book

      <BookID>000012</BookID>

      <BookType>工具</BookType>

      <BookName>汉语成语字典</BookName>

      <Auth>李一华吕德申</Auth>

      <Publisher>四川辞书出版社</Publisher>

      <Price>12</Price>

      <PubDate>1992-1-1</PubDate>

      <Quantity>10</Quantity>

   </Book>

   <Book

      <BookID>000016</BookID>

      <BookType>机械</BookType>

      <BookName>机电控制工程</BookName>

      <Auth>高钟毓王永梁</Auth>

      <Publisher>清华大学出版社</Publisher>

      <Price>19.8</Price>

      <PubDate>1994-9-1</PubDate>

      <Quantity>19</Quantity>

   </Book>

   <Book

      <BookID>000018</BookID>

      <BookType>工具</BookType>

      <BookName>英华大字典</BookName>

      <Auth>郑易里</Auth>

      <Publisher>商务印书馆</Publisher>

      <Price>18.5</Price>

      <PubDate>1984-11-1</PubDate>

      <Quantity>2</Quantity>

   </Book>

</Booklist>

 

 

在spy中新建asp

<%@ Language=VBScript %>

<%

set xmlDoc=Server.createObject("Microsoft.XMLDom")

dim MyNode,namedNodeMap

xmlDoc.load(Server.MapPath("图书信息.xml"))

'获取节点为信息

getallnodes(xmlDoc)

 

'子程序,在获得节点信息时

sub getallnodes(node)

dim I

'当前节点信息

   Response.write("<br><b>节点名称:")

   Response.write(node.nodeName)

   Response.write("</b><br>节点类型:")

   Response.write(node.nodeTypeString)

   Response.write("<br>节点值:")

   Response.write(node.nodeValue)

   '获得子节点信息

   if node.childNodes.length<>0 then

     for i=0 to node.childNodes.length-1

       getallnodes(node.childNodes(i))

     next

   end if

end sub

%>

 

打开webserver服务器。

显示asp。

 

Iis 节点值是document

 

 

Webserver:节点值是Element

 

lab2.aspx

<%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="lab2.aspx.cs"Inherits="lab1.lab2" %>

 

<!DOCTYPEhtml>

 

<htmlxmlns="http://www.w3.org/1999/xhtml">

<headrunat="server">

<metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/>

    <title></title>

</head>

<body>

    <formid="form1"runat="server">

    <div>

       BookID: <asp:TextBoxID="textbox1"runat="server"></asp:TextBox><br/>

        BookType: <asp:TextBoxID="textbox2"runat="server"></asp:TextBox><br/>

        BookName: <asp:TextBoxID="textbox3"runat="server"></asp:TextBox><br/>

       Auth: <asp:TextBoxID="textbox4"runat="server"></asp:TextBox><br/>

        Publisher: <asp:TextBoxID="textbox5"runat="server"></asp:TextBox><br/>

          Price: <asp:TextBoxID="textbox6"runat="server"></asp:TextBox><br/>

       PubDate: <asp:TextBoxID="textbox7"runat="server"></asp:TextBox><br/>

        Quantity: <asp:TextBoxID="textbox8"runat="server"></asp:TextBox><br/>

        <asp:ButtonID="button1"runat="server"OnClick="btn1_click"Text="输出所有节点"/>

                <asp:ButtonID="button2"runat="server"OnClick="btn2_click"Text="添加一个节点"style="height: 21px"/>

    </div>

    </form>

</body>

</html>

 

lab2.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Xml;

namespace lab1

{

    publicpartialclasslab2 : System.Web.UI.Page

    {

        protectedvoid Page_Load(object sender, EventArgs e)

        {

 

        }

        string filePath = "G:\\大三下学期\\15219111419仇飞鸿实验11 .NET中XML操作(一)\\图书信息.xml";

        publicvoid getAllElements() {

            XmlDocument xmlDoc = new XmlDocument();

            xmlDoc.Load(filePath);

            XmlNodeList nodelist = xmlDoc.SelectNodes("/Booklist/Book");

            Response.Write("所有节点:"+"<br>");

            for (int i=0;i<nodelist.Count;i++) {

                //Response.Write("BookID:" + nodelist.Item(i).Attributes["BookID"].Value);

                //Response.Write("ID:"+nodelist.Item(i).Attributes["ID"].Value);

                Response.Write("");

                for (int j=0;j<nodelist.Item(i).ChildNodes.Count;j++) {

                    Response.Write(nodelist.Item(i).ChildNodes[j].Name+":");

                    Response.Write(nodelist.Item(i).ChildNodes[j].InnerText);

                    Response.Write("<br>");

                }

                Response.Write("<br>");

            }

        }

        publicvoid getOneElements() {

            XmlDocument xmlDoc = new XmlDocument();

            xmlDoc.Load(filePath);

 

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

 

            XmlElement xel = xmlDoc.CreateElement("Book");

 

            xel.SetAttribute("BookID", textbox1.Text.Trim());

 

            XmlElement xesub0 = xmlDoc.CreateElement("BookID");

            xesub0.InnerText = textbox2.Text.Trim();

            xel.AppendChild(xesub0);

 

            XmlElement xesub1 = xmlDoc.CreateElement("BookType");

            xesub1.InnerText = textbox2.Text.Trim();

            xel.AppendChild(xesub1);

 

            XmlElement xesub2 = xmlDoc.CreateElement("BookName");

            xesub2.InnerText = textbox3.Text.Trim();

            xel.AppendChild(xesub2);

            XmlElement xesub3 = xmlDoc.CreateElement("Auth");

            xesub3.InnerText = textbox4.Text.Trim();

            xel.AppendChild(xesub3);

            XmlElement xesub4 = xmlDoc.CreateElement("Publisher");

            xesub4.InnerText = textbox5.Text.Trim();

            xel.AppendChild(xesub4);

            XmlElement xesub5= xmlDoc.CreateElement("Price");

            xesub5.InnerText = textbox6.Text.Trim();

            xel.AppendChild(xesub5);

            XmlElement xesub6 = xmlDoc.CreateElement("PubDate");

            xesub6.InnerText = textbox7.Text.Trim();

            xel.AppendChild(xesub6);

            XmlElement xesub7 = xmlDoc.CreateElement("Quantity");

            xesub7.InnerText = textbox8.Text.Trim();

            xel.AppendChild(xesub7);

 

            root.AppendChild(xel);

            xmlDoc.Save(filePath);

            getAllElements();

        }

 

        protectedvoid btn1_click(object sender, EventArgs e)

        {

            getAllElements();

        }

 

        protectedvoid btn2_click(object sender, EventArgs e)

        {

            getOneElements();

        }

    }

}

 

 

显示全部节点:


 

 

添加一个节点:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值