zoukankan      html  css  js  c++  java
  • c# 如何读取xml节点中的属性(转)

    using System; 
    using System.Collections; 
    using System.ComponentModel; 
    using System.Data; 
    using System.Drawing; 
    using System.Web; 
    using System.Web.SessionState; 
    using System.Web.UI; 
    using System.Web.UI.WebControls; 
    using System.Web.UI.HtmlControls; 
    using System.Xml; 
    private XmlDocument xmlDoc; 

    //load xml file 
    private void LoadXml() 
    { 
    xmlDoc=new XmlDocument(); 
    xmlDoc.Load(Server.MapPath("User.xml")); 
    } 


    //添加节点 
    private void AddElement() 
    { 

    LoadXml(); 

    XmlNode xmldocSelect=xmlDoc.SelectSingleNode("user"); 

    XmlElement el=xmlDoc.CreateElement("person"); //添加person节点 
    el.SetAttribute("name","风云"); //添加person节点的属性"name" 
    el.SetAttribute("sex","女"); //添加person节点的属性 "sex" 
    el.SetAttribute("age","25"); //添加person节点的属性 "age" 

    XmlElement xesub1=xmlDoc.CreateElement("pass"); //添加person节点的里的节点 
    xesub1.InnerText="123";//设置文本节点 
    el.AppendChild(xesub1); 
    XmlElement xesub2=xmlDoc.CreateElement("Address"); 
    xesub2.InnerText="昆明";//设置文本节点 
    el.AppendChild(xesub2); 

    xmldocSelect.AppendChild(el); 
    xmlDoc.Save(Server.MapPath("user.xml")); 


    } 




    //修改节点 
    private void UpdateElement() 
    { 
    LoadXml(); 
    XmlNodeList nodeList=xmlDoc.SelectSingleNode("user").ChildNodes;//获取bookstore节点的所有子节点 
    foreach(XmlNode xn in nodeList)//遍历所有子节点 
    { 
    XmlElement xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型 
    if(xe.GetAttribute("name")=="风云")//如果name属性值为“风云” 
    { 
    xe.SetAttribute("name","发明"); 


    //如果下面有子节点在下走 
    XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点 
    foreach(XmlNode xn1 in nls)//遍历 
    { 
    XmlElement xe2=(XmlElement)xn1;//转换类型 
    if(xe2.Name=="pass")//如果找到 
    { 
    xe2.InnerText="66666";//则修改 
    break; 

    } 
    } 

    break; 
    } 
    } 
    xmlDoc.Save(Server.MapPath("user.xml"));//保存 
    } 


    //删出节点 
    private void deleteNode() 
    { 

    LoadXml(); 
    XmlNodeList xnl=xmlDoc.SelectSingleNode("user").ChildNodes; 

    foreach(XmlNode xn in xnl) 
    { 
    XmlElement xe=(XmlElement)xn; 

    if(xe.GetAttribute("name")=="发明") 
    { 
    //xe.RemoveAttribute("name");//删除name属性 
    xe.RemoveAll();//删除该节点的全部内容 


    break; 
    } 

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

    private void showIt() 
    { 
    LoadXml(); 
    XmlNode xn=xmlDoc.SelectSingleNode("user"); 

    XmlNodeList xnl=xn.ChildNodes; 

    foreach(XmlNode xnf in xnl) 
    { 
    XmlElement xe=(XmlElement)xnf; 
    // Console.WriteLine(xe.GetAttribute("name"));//显示属性值 
    // Console.WriteLine(xe.GetAttribute("sex")); 
    // 
    // XmlNodeList xnf1=xe.ChildNodes; 
    // foreach(XmlNode xn2 in xnf1) 
    // { 
    // Console.WriteLine(xn2.InnerText);//显示子节点点文本 
    // } 
    }

    示例:

    代码:

    public Dictionary<string, string> getWelcomeRead()
            {
                Dictionary<string, string> dic = new Dictionary<string, string>();
                try
                {
                    XmlDocument xmldoc = new XmlDocument();
                    xmldoc.Load("AlienConfig.xml");
                    XmlNodeList xmlList = xmldoc.SelectSingleNode("Welcome").ChildNodes;

                    foreach (XmlNode node in xmlList)
                    {
                        XmlElement xe = (XmlElement)node;
                        if (xe.Name == "IPAddress")
                        {
                            dic.Add(xe.Name, xe.InnerText);
                        }
                        if (xe.Name == "Iport")
                        {
                            dic.Add(xe.Name, xe.InnerText);
                        }
                        if (xe.Name == "EndTime")
                        {
                            dic.Add(xe.Name, xe.InnerText);
                        }
                        if (xe.Name == "RateTime")  //type
                        {
                            dic.Add(xe.Name, xe.InnerText);

                            string strType = xe.GetAttribute("ratetype") != "" ? xe.GetAttribute("ratetype") : "";
                            dic.Add("ratetype", strType);
                        }
                    }
                }
                catch (Exception ex)
                {
                    dic = new Dictionary<string, string>();
                    dic.Add("Error", ex.Message);
                }

                return dic;
            }

  • 相关阅读:
    Linux信号列表
    ubuntu nfs server的安装
    【转】 澄清:make oldconfig
    鸟哥的私房菜
    【转】WIN XP下pppoe服务器的搭建与使用
    《Win32多线程程序设计》学习笔记 第4章 同步控制之 事件(Event Objects) 和 interlocked variables
    《Win32多线程程序设计》学习笔记 第4章 同步控制之 信号量(Semaphores)
    《C++编程规范》学习笔记(2)
    《Win32多线程程序设计》学习笔记 第5章 不要让线程成为脱缰野马
    《C++编程规范》学习笔记(4)编程风格
  • 原文地址:https://www.cnblogs.com/zqn518/p/3136073.html
Copyright © 2011-2022 走看看