当前位置: 移动技术网 > IT编程>开发语言>.net > C#實現XML的增刪查改

C#實現XML的增刪查改

2019年01月22日  | 移动技术网IT编程  | 我要评论

征途小宝,我的守护骑士,志在千里前一句

命名空間:using system.xml;

1、查找某個節點是否存在:

    private xmldocument xmldoc;
    private string mod="1";  
    private bool findnode()
 {
       xmldoc = new xmldocument();

       xmldoc.load("d://a.xml");      //加載xml文檔內容,路徑為xml路徑

       xmlnode s = xmldoc.selectsinglenode("//" + "model");//第一層節點
                if (s.haschildnodes)
                {
                    xmlnodelist xnl = s.childnodes;//子節點列表
                    foreach (xmlnode xn in xnl)
                    {
                        xmlelement xn1 = (xmlelement)xn;//節點轉換為元素
                        if (xn1.name == mod)//節點找到,返回true
                        {
                            return true;
                        }
                    }
                    return false;//節點沒找到,返回false
                }
}

 2、增加節點:

      添加節點,如果有多級節點,從n級節點往上添加節點的順序添加。

   private static xmlelement xmlem;
public bool addnode( ) { xmldoc = new xmldocument(); if (!file.exists("d://a.xml"))//xml文件不存在 { xmldeclaration xmldecl; xmldecl = xmldoc.createxmldeclaration("1.0", "gb2312", null); //xml頂部聲明 xmldoc.appendchild(xmldecl);//xml添加頭部聲明 xmlem = xmldoc.createelement("", "model", ""); //創建第一級元素 xmlelement xe8= xmldoc.createelement(mod); //創建第一級節點的子節點,即第二級節點,要添加的節點 xmlem.appendchild(xe8); //在第一級節點追加第二級節點 xmldoc.appendchild(xmlem); //文件中添加添加第一級節點和它的子節點 } else//xml文件存在 { xmldoc.load(sett.pahxml)//加載xml內容 if (!findnode()) //查找節點不存在 { xmlnode rot = xmldoc.selectsinglenode("//model"); //挑選第一個節點 xmlem = xmldoc.createelement(mod); //創建要添加的節點 rot.appendchild(xmlem); //添加節點 xmldoc.appendchild(rot); } } xmldoc.save("d://a.xml"); return true; }

 3、刪除節點:  

     public  bool removenode()
     {
                xmldoc = new xmldocument();    
                if (!file.exists("d://a.xml"))
                {
                    return true;
                }
                else
                {
                    xmldoc.load(sett.pahxml);
                    if (findnode())//節點存在
                    {           
                            xmlnode root = xmldoc.selectsinglenode("//model/"+sett.station.mod);//查找父節點
                            xmlnodelist nl = root.childnodes;
                            foreach (xmlnode no in nl)
                            {
                                xmlelement f = (xmlelement)no;
                                if (f.name ==  station.id)
                                {
                                    root.removechild(f);//刪除節點
                                    break;
                                }
                            }
                             xmldoc.save(sett.pahxml);
                             return true;
                        }
                        else
                        {
                            return true;
                        }
                }
        }    

 4、修改節點:

 private bool modifynode()
{
     xmldoc.load(sett.pahxml);             
                    if (findmolde())
                    {
                        xmlnode root = xmldoc.selectsinglenode("//model/" + station.mod);//上級節點
                        if(findid())//查找節點是否存在
                        {
                            xmlnodelist nl = root.childnodes;
                            foreach(xmlnode no in nl)
                            {
                                xmlelement f = (xmlelement)no;
                                if(f.name==station.id)//查找到要修改的節點
                                {
                                    f.setattribute("name", station.name);//修改屬性
                                    f.setattribute("time", station.time.tostring());
                                    f.setattribute("uph", station.uph.tostring());
                                    xmlnodelist nls = f.childnodes;
                                    foreach(xmlnode no2 in nls)//修改第一級子節點
                                    {
                                        xmlelement g = (xmlelement)no2;
                                        if (g.name == "function")
                                        {
                                            g.innertext = station.func;
                                            continue;
                                        }
                                        if (g.name == "leader")
                                        {
                                            g.innertext = station.leader;
                                            continue;
                                        }
                                        if (g.name =="procstep")
                                        {
                                            g.innertext = station.proc;
                                            continue;
                                        }
                                        if(g.name=="set")
                                        {
                                            xmlnodelist h = g.childnodes;//修改第二級子節點
                                            g.removeall();
                                            foreach(keyvaluepair<string,int> kv in station.set)
                                            {
                                                    string dd = kv.key;
                                                    xmlelement xe5 = xmldoc.createelement(dd);
                                                    xe5.innertext = kv.value.tostring();
                                                    g.appendchild(xe5);
                                            }                                                             
                                       }
                                    }
                                   xmldoc.save(sett.pahxml);return true;
                                }else{return false;}
                            }else{return false;}
}

 

 

 

 

   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

https://www.cnblogs.com/guxia/p/8242483.html

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网