zoukankan      html  css  js  c++  java
  • c#对xml的操作

    在介绍之前,先了解xml技术用于解决什么问题:

    xml语言出现的根本目标在于描述现实生活中经常出现的有关系的数据。比如说:(书架 书  作者 价格)(动物,哺乳动物,猫)这类的数据。
    xml的语法跟html类似,不过xml没有只带的标签,它是让用户自己定义标签。
    在xml技术里,可以编写一个文档来约束一个xml文档的书写规范,这称之为约束。它的出现就是为了防止用户胡乱定义标签。
    常用的约束技术有
    XML DTD
    XML Schema

    在应用程序中如何使用XML:

    要想操作xml首先的加载到内存里。

    XmlDocument document = new XmlDocument();
    document.load("xml文件路径");

    加载到内存后,就要对它执行一些操作了。

    XmlElement element = document.DocumentElement;
    //DocumentElement属性会返回一个XMLElement实例(表示根节点);

    XmlElement的属性

    FistChild:第一个子节点

    ListChild:最后一个子节点

    NextSibling:当前节点的下一个节点

    HasChildNodes:是否有子节点

    例子:

    XmlDocument document = new XmlDocument();
    XmlElement element;
     if (!File.Exists(xmlPath)){//判断是否有文件
    XmlDeclaration doc = document.CreateXmlDeclaration("1.0", "utf-8", null);//新建xml头
           document.AppendChild(doc);//追加
           element = document.CreateElement("persons");新建根节点
           document.AppendChild(element);
    }else{
    document.Load(xmlPath);//加载xml文件
             element = document.DocumentElement;
            }
            XmlElement newPerson = document.CreateElement("person");
            newPerson.SetAttribute("userName", users.UserName); //设置属性
            newPerson.SetAttribute("phone", users.Phone);
            element.AppendChild(newPerson);
            document.Save(xmlPath);//保存文件
      

    插入新节点:

    XmlNode中有三个方法进行插入:AppendChild追加到后面,InsertAfter指定节点后面追加,InsertBefore指定节点前面追加

      XmlElement root = document.DocumentElement;
      XmlElement f1 = (XmlElement) root.FirstChild;

    XmlElement newbook =  document.CreateElement("newbook");
    XmlText title = document.CreateTextNode("aaa");//创建文本
    newbook.AppendChild(title);//追加到节点上
    f1.InsertAfter(newbook, f1.FirstChild.NextSibling); //追加到f1下面第一个节点的下一个节点的后面

    删除节点:

    RemoveAll 删除所有字节点。

    RemoveChild 删除一个子节点

    XMLDocument document = new XmlDocument();
    document.Load(xmlPath);
    XmlElement root = document.DocumentElement;
    if(root.HasChildNodes){//删除前判断是否有此根节点,以免出错
      XmlNode book = root.LastChild;
      root.RemoveChild(book);
      document.Save(xmlPath);
    }

    选择节点:

    选择节点是通过XPath查询语言来进行查询选择的

    SelectSingNode 返回一个节点

    SelectNodes 返回一个节点集合

    遍历:
    
    XmlNodeList node = root.SelectNodes("//author");
    foreach (XmlElement element in node)
    {
    Console.WriteLine(element.InnerText);
    } 
  • 相关阅读:
    Leetcode 1. Two Sum (Python)
    视觉机器学习------KNN学习
    anaconda新建虚拟环境安装各个依赖包
    Matconvnet安装
    argparse模块
    Matconvnet笔记(一)
    Ubuntu14.04下如何安装TensorFlow
    springboot2+freemarker简单使用
    mongodb安装4.0(rpm)
    检测web界面不能访问后重启
  • 原文地址:https://www.cnblogs.com/sjyzz/p/7641094.html
Copyright © 2011-2022 走看看