XML操作测试

1:xml文件

<?xml version="1.0" encoding="utf-8"?>
<equipConfig>
  
<config ISBN="猫哥">
    
<id>3</id>
    
<equipId>3</equipId>
    
<equipName>leadbbs</equipName>
    
<isCommon>1</isCommon>
    
<isPublic>1</isPublic>
    
<isLog>0</isLog>
    
<warningInterval>10</warningInterval>
  
</config>
</equipConfig>

3:Default.aspx

 

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    
<title>Untitled Page</title>
</head>
<body>
    
<form id="form1" runat="server">
        
<div>
List:
<asp:Button  ID="btnAdd" runat="server" BorderStyle="groove" Text="添加节点" OnClick="btnAdd_Click"/>
<asp:Button  ID="btnDelete" runat="server" BorderStyle="Dotted" Text="删除节点" OnClick="btnDelete_Click" />
<asp:Button ID="btnEdit" runat="server"  BorderStyle="solid" Text="编辑第一个节点" OnClick="btnEdit_Click"  />
<br />
<asp:ListBox ID="lb" runat="server" Width="200"  Height="200"  SelectionMode="multiple">

</asp:ListBox>        
        
</div>
    
</form>
</body>
</html>


 

3:Default.aspx.cs


 

 

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)
    
{
        
if (!Page.IsPostBack)
        
{
            BindListBox();
        }

    }

    
protected void BindListBox()
    
{
        
//Create XmlDocument
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(Server.MapPath(
"EquipConfig.xml"));

        
//Select xmlNode
        XmlNode xn = xmlDoc.SelectSingleNode("equipConfig");

        
//Obtain XmlNodeList
        XmlNodeList xnList = xn.ChildNodes;
        
foreach (XmlNode xnde in xnList) //more config
        {
            
//XmlElement xe = (XmlElement)xnde;
            
//lb.Items.Add(new ListItem("Property", "Property", false));
            
//lb.Items.Add(xe.GetAttribute("ISBN"));

            
//XmlNodeList xnList1 = xnde.ChildNodes;
            
//foreach (XmlNode xn1 in xnList1)
            
//{
            
//    lb.Items.Add(xn1.InnerText);
            
//}
          this.lb.Items.Add(new ListItem(xnde.ChildNodes[2].InnerText,xnde.ChildNodes[0].InnerText));
            
        }

    }

    
protected void btnAdd_Click(object sender, EventArgs e)
    
{
        
//Create XmlDocument and Load xmlfile
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(Server.MapPath(
"EquipConfig.xml"));

        
//obtain rootNode
        XmlNode root = xmlDoc.SelectSingleNode("equipConfig");

        
//Create config node
        XmlElement config = xmlDoc.CreateElement("config");
        config.SetAttribute(
"ISBN""猫哥");

        
int _maxid = Convert.ToInt32(root.LastChild.FirstChild.InnerText);
        _maxid
++;



        


        
//create SubNode
        XmlElement id = xmlDoc.CreateElement("id");
        id.InnerText 
= _maxid.ToString();

        XmlElement equipId 
= xmlDoc.CreateElement("equipId");
        equipId.InnerText 
= _maxid.ToString();

        XmlElement equipName 
= xmlDoc.CreateElement("equipName");
        equipName.InnerText 
= "xinsoft"+_maxid.ToString();


        XmlElement isCommon 
= xmlDoc.CreateElement("isCommon");
        isCommon.InnerText 
= "1";

        XmlElement isPublic 
= xmlDoc.CreateElement("isPublic");
        isPublic.InnerText 
= "1";

        XmlElement isLog 
= xmlDoc.CreateElement("isLog");
        isLog.InnerText 
= "0";

        XmlElement warningInterval 
= xmlDoc.CreateElement("warningInterval");
        warningInterval.InnerText 
= "10";


        config.AppendChild(id);
        config.AppendChild(equipId);
        config.AppendChild(equipName);
        config.AppendChild(isCommon);
        config.AppendChild(isPublic);
        config.AppendChild(isLog);
        config.AppendChild(warningInterval);

        root.AppendChild(config);
        xmlDoc.Save(Server.MapPath(
"EquipConfig.xml"));
        
this.lb.Items.Clear();
        BindListBox();

    }


    
protected void btnDelete_Click(object sender, EventArgs e)
    
{
        
for (int i = 0; i < this.lb.Items.Count; i++)
        
{
            
if (this.lb.Items[i].Selected)
            
{
                DeleteNode(
this.lb.Items[i].Value);
            }

        }

        
this.lb.Items.Clear();
        BindListBox();
        
    }

    
protected void DeleteNode(string  id)
    
{
        XmlDocument xmlDoc 
= new XmlDocument();
        xmlDoc.Load(Server.MapPath(
"EquipConfig.xml"));

        XmlNodeList xnl 
= xmlDoc.SelectSingleNode("equipConfig").ChildNodes;
        XmlNode root
=xmlDoc.SelectSingleNode("equipConfig");
        
foreach(XmlNode xn in xnl)
        
{
            XmlElement xe
=(XmlElement)xn;
            
if (xe.FirstChild.InnerText == id)
                root.RemoveChild(xn);
            
                
        }

        

        xmlDoc.Save(Server.MapPath(
"EquipConfig.xml"));

    }


    
protected void btnEdit_Click(object sender, EventArgs e)
    
{
        XmlDocument xmlDoc 
= new XmlDocument();
        xmlDoc.Load(Server.MapPath(
"EquipConfig.xml"));

        XmlNode root 
= xmlDoc.SelectSingleNode("equipConfig");
        root.FirstChild.ChildNodes[
2].InnerText = "leadbbs";
        xmlDoc.Save(Server.MapPath(
"EquipConfig.xml"));

        
this.lb.Items.Clear();
        BindListBox();
    }

}
posted @ 2007-09-19 18:42  roboth  阅读(387)  评论(0编辑  收藏  举报