动态创建Xml文件,标签插入以及删除

最近在做一个项目,设计到xml文件的传输,所以就研究了一下。
,.NET Framework完全支持XML DOM模式,但它不支持SAX模式。.NET Framework支持两种不同的分析模式:XML DOM分析器(XMLDocument类)和XML阅读器(XMLTextReader类),不支持SAX分析器, 但这并不意味着它没有提供类似SAX分析器的功能。通过XML阅读器可以将SAX的所有的功能很容易的实现及更有效的运用。

但是我们一般运用最多的是DOM。

一、创建xml文件

    using System.Xml;
    using System.IO;//这个一定要写

     XmlDocument xmlDoc = new XmlDocument();
        //加入XML的声明段落,Save方法不再xml上写出独立属性
        xmlDoc.AppendChild(xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null));
       //加入根元素

        XmlElement root = xmlDoc.CreateElement("ROOT");
        xmlDoc.AppendChild(root);

        XmlElement memberlist = xmlDoc.CreateElement("MEMBERLIST");

        XmlElement memberA = xmlDoc.CreateElement("MEMBER");
        memberA.SetAttribute("AGE", ">=29");
        memberA.SetAttribute("SEX", "MALE");
        XmlElement zs = xmlDoc.CreateElement("NAME");
        zs.InnerText = "张三";
        XmlElement ls = xmlDoc.CreateElement("NAME");
        ls.InnerText = "李四";
        memberA.AppendChild(zs);
        memberA.AppendChild(ls);

        XmlElement memberB = xmlDoc.CreateElement("MEMBER");
        memberB.SetAttribute("AGE", ">=35");
        memberB.SetAttribute("SEX", "MALE");
        XmlElement ww = xmlDoc.CreateElement("NAME");
        ww.InnerText = "王五";
        XmlElement zl = xmlDoc.CreateElement("NAME");
        zl.InnerText = "赵六";
        memberB.AppendChild(ww);
        memberB.AppendChild(zl);

        memberlist.AppendChild(memberA);
        memberlist.AppendChild(memberB);
        root.AppendChild(memberlist);
        xmlDoc.Save(xmlpath);            

效果如下:

<<ROOT>
     <MEMBERLIST>
            <MEMBERAGE=">=29"SEX="MALE">
                     <NAME>张三</NAME>
                     <NAME>李四</NAME>                 
          </MEMBER>
            <MEMBERAGE=">=35"SEX="MALE">
                       <NAME>王五</NAME>
                       <NAME>赵六</NAME>
             </MEMBER>
        <MEMBERAGE="<29" SEX="MALE">
                       <NAME>六七</NAME>
             </MEMBER>
         </MEMBERLIST>
< </ROOT>

有几点要记住了,XmlNode包含XmlElement,即XmlNode可以转化为XmlElement而XmlElement不可以转化为XmlNode.
xmDoc.selectSingleNode(“节点名称”).这个节点名称是他的路径。若是根节点当时只写名称就可以了,若是子节点,则需要些明从根节点到它的路径。

再就是遍历xml文件,这个就不记录了,上面这些操作会了,遍历就不是问题了。

猜你喜欢

转载自blog.csdn.net/qq_36561650/article/details/82499642