xml的读写操作

本人也是初学XML网上找个基本例子,
但是运行有写错误,现自己修改后把代码贴上来,让同是初学者参考 
1.新建一个XML文件(bookstore.xml)如下:

<? xml version="1.0" encoding="gb2312" ?>
< bookstore >
  
< book  genre ="fantasy"  ISBN ="2-3631-4" >
    
< title > Oberon's Legacy </ title >
    
< author > Corets, Eva </ author >
    
< price > 5.95 </ price >
  
</ book >
</ bookstore >


2.以下是我建立的一个网站前台页面为几个Button操作

<% @ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default"  %>

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >

< html  xmlns ="http://www.w3.org/1999/xhtml"   >
< head  runat ="server" >
    
< title > 无标题页 </ title >
</ head >
< body >
    
< form  id ="form1"  runat ="server" >
    
< div >
        
< asp:Button  ID ="Button1"  runat ="server"  OnClick ="Button1_Click"  Text ="增加"   />
        
< asp:Button  ID ="Button2"  runat ="server"  Text ="修改"  OnClick ="Button2_Click"   />
        
< asp:Button  ID ="Button3"  runat ="server"  Text ="删除"  OnClick ="Button3_Click"   />
        
< asp:Button  ID ="Button4"  runat ="server"  OnClick ="Button4_Click"  Text ="显示"   /></ div >
    
</ form >
</ body >
</ html >

2.后台代码(这里是已经修改调试成功)
using  System;
using  System.Data;
using  System.Configuration;
using  System.Web;
using  System.Web.Security;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Web.UI.WebControls.WebParts;
using  System.Web.UI.HtmlControls;
using  System.Xml;

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

    }

    
protected void Button1_Click(object sender, EventArgs e)
    
{  //往<bookstore>节点中插入一个<book>节点
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(Server.MapPath(
"bookstore.xml"));
        XmlNode root 
= xmlDoc.SelectSingleNode("bookstore");//查找<bookstore>
        XmlElement xe1 = xmlDoc.CreateElement("book");//创建一个<book>节点
        xe1.SetAttribute("genre""李赞红");//设置该节点genre属性
        xe1.SetAttribute("ISBN""2-3631-4");//设置该节点ISBN属性

        XmlElement xesub1 
= xmlDoc.CreateElement("title");
        xesub1.InnerText 
= "CS从入门到精通";//设置文本节点
        xe1.AppendChild(xesub1);//添加到<book>节点中
        XmlElement xesub2 = xmlDoc.CreateElement("author");
        xesub2.InnerText 
= "候捷";
        xe1.AppendChild(xesub2);
        XmlElement xesub3 
= xmlDoc.CreateElement("price");
        xesub3.InnerText 
= "58.3";
        xe1.AppendChild(xesub3);

        root.AppendChild(xe1);
//添加到<bookstore>节点中
       
// xmlDoc.Save("bookstore.xml");
        xmlDoc.Save(Server.MapPath("bookstore.xml"));
    }

    
protected void Button2_Click(object sender, EventArgs e)
    
{
        
//修改节点:将genre属性值为“李赞红“的节点的genre值改为“update李赞红”,将该节点的子节点<author>的文本修改为“亚胜”。
        XmlDocument xmlDoc = new XmlDocument();//修改添加的一行
        xmlDoc.Load(Server.MapPath("bookstore.xml"));//修改添加的一行
        XmlNodeList nodeList = xmlDoc.SelectSingleNode("bookstore").ChildNodes;//获取bookstore节点的所有子节点
        foreach (XmlNode xn in nodeList)//遍历所有子节点
        {
            XmlElement xe 
= (XmlElement)xn;//将子节点类型转换为XmlElement类型
            if (xe.GetAttribute("genre"== "李赞红")//如果genre属性值为“李赞红”
            {
                xe.SetAttribute(
"genre""update李赞红");//则修改该属性为“update李赞红”

                XmlNodeList nls 
= xe.ChildNodes;//继续获取xe子节点的所有子节点
                foreach (XmlNode xn1 in nls)//遍历
                {
                    XmlElement xe2 
= (XmlElement)xn1;//转换类型
                    if (xe2.Name == "author")//如果找到
                    {
                        xe2.InnerText 
= "亚胜";//则修改
                        break;//找到退出来就可以了
                    }

                }

                
break;
            }

        }

        xmlDoc.Save(Server.MapPath(
"bookstore.xml"));//保存。

    }

    
    
protected void Button3_Click(object sender, EventArgs e)
    
{
        
//删除 <book genre="fantasy" ISBN="2-3631-4">节点的genre属性,删除 <book genre="update李赞红" ISBN="2-3631-4">节点。
        XmlDocument xmlDoc = new XmlDocument();//修改添加的一行
        xmlDoc.Load(Server.MapPath("bookstore.xml"));//修改添加的一行
        XmlNodeList xnl = xmlDoc.SelectSingleNode("bookstore").ChildNodes;
        
foreach (XmlNode xn in xnl)
        
{
            XmlElement xe 
= (XmlElement)xn;
            
if (xe.GetAttribute("genre"== "fantasy")
            
{
                xe.RemoveAttribute(
"genre");//删除genre属性
            }

            
else if (xe.GetAttribute("genre"== "update李赞红")
            
{
                xe.RemoveAll();
//删除该节点的全部内容
            }

        }

        xmlDoc.Save(Server.MapPath(
"bookstore.xml"));//保存。
    }

    
protected void Button4_Click(object sender, EventArgs e)
    
{
        XmlDocument xmlDoc 
= new XmlDocument();//修改添加的一行
        xmlDoc.Load(Server.MapPath("bookstore.xml"));//修改添加的一行
        XmlNode xn = xmlDoc.SelectSingleNode("bookstore");
        XmlNodeList xnl 
= xn.ChildNodes;

        
foreach (XmlNode xnf in xnl)
        
{
            XmlElement xe 
= (XmlElement)xnf;
            Console.WriteLine(xe.GetAttribute(
"genre"));//显示属性值
            Console.WriteLine(xe.GetAttribute("ISBN"));

            XmlNodeList xnf1 
= xe.ChildNodes;
            
foreach (XmlNode xn2 in xnf1)
            
{
                Console.WriteLine(xn2.InnerText);
//显示子节点点文本
                Response.Write(xn2.InnerText);//查看用的
            }

        }

    }

}

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值