利用XmlDocument操作XML文件

利用XmlDocument可以方便的操作XML文件。

1.操作XML文件基本方法

(1)添加对System.Xml的引用,并使用using语句添加引用;

(2)假设要读取的XML文件如下:

<?xml version="1.0" encoding="utf-8"?>
<Students>
  <Student>
    <Name>张靓靓</Name>
    <Age>20</Age>
    <Hobby>唱歌歌</Hobby>
  </Student>
  <Student>
    <Name>周杰杰</Name>
    <Age>22</Age>
    <Hobby>耍双节棍棍</Hobby>
  </Student>
</Students>

(3)编写程序,增加节点:

        private static void AddNode()
        {
            XmlDocument myXml = new XmlDocument();
            myXml.Load("Student.xml"); //读取指定的XML文档
            XmlNode students = myXml.SelectSingleNode("Students");//读取Students节点
            XmlElement newStudent = myXml.CreateElement("Student");

            newStudent.SetAttribute("班级", "10软件");
            XmlElement name = myXml.CreateElement("Name");
            name.InnerText = "张三";
            XmlElement age = myXml.CreateElement("Age");
            age.InnerText = "20";
            XmlElement hobby = myXml.CreateElement("Hobby");
            hobby.InnerText = "看书";
            newStudent.AppendChild(name);
            newStudent.AppendChild(age);
            newStudent.AppendChild(hobby);
            students.AppendChild(newStudent);
            myXml.Save("Student.xml");
        }

(4)删除节点:

        private static void DelNode()
        {
            XmlDocument myXml = new XmlDocument();
            myXml.Load("Student.xml"); //读取指定的XML文档
            XmlNode student= myXml.SelectSingleNode("//Student[Name=‘张德友‘]");//读取节点
            if(student!=null)
                student.ParentNode.RemoveChild(student);
            myXml.Save("Student.xml");
        }

(5)修改节点的值:

        private static void ChangeNode()
        {
            XmlDocument myXml = new XmlDocument();
            myXml.Load("Student.xml"); //读取指定的XML文档
            XmlNodeList students = myXml.DocumentElement.ChildNodes;
            foreach (XmlNode student in students)
            {
                XmlElement name=student.SelectSingleNode("Name") as XmlElement;//读取节点
                if (name.InnerText.Equals("张三"))
                    name.InnerText = "李四";
            }
            myXml.Save("Student.xml");
        }

(6)读取XML文件:

        private static void ReadNode()
        {
            XmlDocument myXml = new XmlDocument();
            myXml.Load("Student.xml"); //读取指定的XML文档
            XmlNodeList students = myXml.DocumentElement.ChildNodes;//读取所有Student节点
            foreach (XmlNode student in students)// 对子节点进行循环
            {
                foreach (XmlNode node in student.ChildNodes)
                {
                    //将每个节点的内容显示出来
                    switch (node.Name)
                    {
                        case "Name":
                            Console.WriteLine("姓名:{0}", node.InnerText);
                            break;
                        case "Age":
                            Console.WriteLine("年龄:{0}", node.InnerText);
                            break;
                        case "Hobby":
                            Console.WriteLine("爱好:{0}", node.InnerText);
                            break;
                    }
                }
            }
        }

2  操作ASP.NET网站站点地图文件:

站点地图文件Web.sitemap的格式如下:

<?xml version="1.0" encoding="utf-8"?>
<siteMapNode url="default.aspx" title="新书推荐" description="">
  <siteMapNode title=" C#" url="BookList.aspx?typeid=1" description="" />
  <siteMapNode title=".NET" url="BookList.aspx?typeid=25" description="" />
</siteMapNode>

    /// <summary>
    /// 更新全部XML
    /// </summary>
    private void ModifyXml()
    {
        xmldocTree.Load(Server.MapPath(CATAGORYXML));
        xmldocTree.SelectSingleNode("siteMapNode").InnerText="";
        foreach (Category catagory in CategoryManager.GetAllCategories())
        {
            MakeChild(catagory);
        }
        xmldocTree.Save(Server.MapPath(CATAGORYXML));
    }
    /// <summary>
    /// 设置子节点
    /// </summary>
    /// <param name="catagory"></param>
    private void MakeChild(Category catagory)
    {
        XmlElement xmlelNode = xmldocTree.CreateElement("siteMapNode");
        xmlelNode.SetAttribute("title", catagory.Name);
        xmlelNode.SetAttribute("url", BOOKLISTURL + catagory.Id.ToString());
        xmlelNode.SetAttribute("description", "");
        xmldocTree.SelectSingleNode("siteMapNode").AppendChild(xmlelNode);
    }

拣尽寒枝不肯栖,寂寞沙洲。

分类: .Net

标签: XML

绿色通道: 谢谢推荐! 已关注 收藏该文与我联系  

zhouhb
关注 - 27
粉丝 - 70 

我在关注他 取消关注 

2 

0 

推荐成功

«  上一篇:C#调用带返回值的存储过程
»  下一篇:JavaScript学习笔记(一)—细节问题
时间: 2024-10-24 05:36:23

利用XmlDocument操作XML文件的相关文章

Asp.Net 操作XML文件的增删改查 利用GridView

不废话,直接上如何利用Asp.NET操作XML文件,并对其属性进行修改,刚开始的时候,是打算使用JS来控制生成XML文件的,但是最后却是无法创建文件,读取文件则没有使用了 index.aspx 文件 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="XmlManager.index" %> <!

利用XPath读取Xml文件

之所以要引入XPath的概念,目的就是为了在匹配XML文档结构树时能够准确地找到某一个节点元素.可以把XPath比作文件管理路径:通过文件管理路 径,可以按照一定的规则查找到所需要的文件:同样,依据XPath所制定的规则,也可以很方便地找到XML结构文档树中的任何一个节点. 不过,由于XPath可应用于不止一个的标准,因此W3C将其独立出来作为XSLT的配套标准颁布,它是XSLT以及我们后面要讲到的XPointer的重要组成部分. 在介绍XPath的匹配规则之前,我们先来看一些有关XPath的基

C#操作XML文件实例汇总

针对XML文件的操作是C#程序设计中非常常见的功能.本文即以实例展示了C#操作XML文件的几个常见的示例.具体如下: 1.返回节点下标 public static XmlDocument getDoc(String path)//加载xml文档 { XmlDocument doc = new XmlDocument(); doc.Load(path); return doc; } /// <summary> /// 返回找到的节点下标 /// </summary> /// <

使用XML序列化器生成XML文件和利用pull解析XML文件

首先,指定XML格式,我指定的XML格式如下: <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <message> <sms> <body> 陈驰0 </body> <date> 1462162910995 </date> <address> 1380 </address> <type> 1 </type> &

.Net常用技巧_操作xml文件教程(插入节点、修改、删除)

已知有一个XML文件(bookstore.xml)如下:     <?xml   version="1.0"   encoding="gb2312"?>     <bookstore>         <book   genre="fantasy"   ISBN="2-3631-4">             <title>Oberon's   Legacy</title&

01操作XML—C#操作XML文件基础知识

学习笔记,如有错误请指正.?号处也请各位指点下,谢谢. 有一个XML,文件名为“UserInfo.xml”,操作如下: <?xml version="1.0" encoding="UTF-8" standalone="no"?> <users> <user1 姓名="张三" 密码="123">我是张三</user1> <user2 姓名="李四

c#操作XML文件的通用方法

c#操作XML文件的通用方法 本文导读:我们在编写C#程序时,经常会通过C#访问XML文件,实现对XML文档的读写操作.下面为大家列出了通用的调用方法,大家可以将这些方法放在共用类里,其它的程序共享调用就可以了. 下面通过一个类将我们平时用c#操作XML文件的通用方法详细的介绍一下,关于asp.net C#操作xml文档实现代码,大家可以参考参考. c# 代码 1 sing System; 2 using System.Data; 3 using System.Configuration; 4

利用TinyXML解析XML文件

下载地址:TinyXML 解压缩TinyXML后,找到六个文件: tinystr.h.tinystr.cpp.tinyxml.h.tinyxml.cpp.tinyxmlerror.cpp.tinyxmlparser.cpp 将这六个文件放在你的C++工程中,跟你的源文件在同一目录下. 新建一个XML文件,命名为Students.xml : <Class name="计算机软件班"> <Students> <student name="张三&quo

Java操作XML文件 dom4j 篇

在项目中,我们很多都用到了xml文件,无论是参数配置还是与其它系统的数据交互.今天就来讲一下Java 中使用dom4j来操作XML文件. 我们需要引入的包: //文件包 import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileWriter; //工具包 import java.util.Iterator; import java.util.List; //dom4j包 import org.dom