• 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;
            }

  • 相关阅读:
    “fatal error: hdf5.h: 没有那个文件或目录”解决方法
    算法狗的机器学习基础
    统计:假设检验 T检验
    各种排序和数据结构算法收藏
    知乎好书--入门神经网络和机器学习
    机器学习中的数学(1)-回归(regression)、梯度下降(gradient descent)
    第八天 T3S04
    第七天 T3S03
    第六天T3S02
    T3S01
  • 原文地址:https://www.cnblogs.com/zqn518/p/3136073.html
Copyright © 2020-2023  润新知