首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 ┆ 端午节祝福 ┆ 迅雷在线影视
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页>NET专区>C#语言>初学者参考C#中操作XML修改完整版
初学者参考C#中操作XML修改完整版
来源: 发布时间:2008-02-19 发布人: 浏览: 人次   字体: [ ]  

本人也是初学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);//查看用的
            }

        }

    }

}



相 关 文 章   发布商链接
·谈谈对C#委托的理解,附代码实例
·C#中操作XML Node节点细节操作
·浅谈C#对象深拷贝、浅铐贝、直接拷贝
·用C#编写ActiveX控件代码实例
·C#正则表达式常用备忘参考
·C#实现阿拉伯数字转变成大写的类
·什么是装箱和拆箱?及其相应的操作事...
·C#获取IE临时文件夹中的文件代码
·什么是c#深拷贝与浅拷贝及其代码示例
·c#访问修饰符介绍及其应用实例
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·有助快速理解C#委托和事件之...
·C#泛型学习笔记总结
·c#语言从dbf数据库提取数据并
·C#编写控制线程的运行和线程...
·怎样在C#中删除只读文件及其...
·C#函数中返回多个值的两种方...
·如何在C#中插入照片到Excel文
·如何在c#中获取事件注册的方...
·C#对timer类的使用操作代码
·什么是泛型?泛型的一些概述
·C#如何从文本文件读取信息并...
·如何在c#中去掉字符串中的回...
·如何使用C#获取IIS服务器版本...
·什么是泛型编程思想?及其简...
·c#子线程控制进度条的一个简...
热 门 文 章
·c#中收发邮件处理代码(POP3,...
·C#如何获取文件路径中的文件...
·什么是c#深拷贝与浅拷贝及其...
·C#中关于四舍五入函数的讨论...
·c#中的ArrayList属性祥解及其...
·C#语言实现创建、删除和移动...
·快速进行List排序的通用方法...
·C#对timer类的使用操作代码
·String.Split 方法使用及其代...
·如何在c#中去掉字符串中的回...
·用C#编写ActiveX控件代码实例
·C#语言实现从XML文件导出数据...
·C#如何从文本文件读取信息并...
·浅谈接口和抽象类的区别,加...
·c#子线程控制进度条的一个简...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .