zoukankan      html  css  js  c++  java
  • Asp.net 修改Xml文档中的数据

    修改Xml文档中的数据:
    一:使用XPathNavigator修改xml数据
    ////获得dom对象
    XmlDocument doc = new XmlDocument();
    //加载xml文档
    doc.Load(Server.MapPath("~//Xml//Mark.xml"));
    //获取XPathNavigator对象
    XPathNavigator navigator = doc.CreateNavigator();
    //找到Id属性等于markValue的节点
    string path = @"//*[@id='" + markValue + "']";

    foreach (XPathNavigator nav in navigator.Select(path))
    {
        //移到当前节点的第一个子节点
        nav.MoveToFirstChild();
        //修改当前节点的值
        int mark = nav.ValueAsInt;
        mark++;
        nav.SetValue(mark.ToString());
    }
    //保存修改到原来的文件
    doc.Save(Server.MapPath("~//Xml//Mark.xml"));

    二:使用Dom修改xml数据

    //XmlElement和XmlNode的区别:
    //XmlNode 是抽象类 XmlElement继承自XmlNode类
    //在一个xml文档中,
    //每一个单独的节点都是一个XmlElement,也是一个XmlNode
    //但对于XmlElement而言:它是单独的,是只拥有“属性”的一个节点
    //而不存在子元素之说
    //而XmlNode则是处在“一棵树”的大环境中,它有自己的属性,
    //也有与他关联的子节点,父节点等;

    1.使用XmlElement
    //获得dom对象
    XmlDocument doc = new XmlDocument();
    //加载xml文档
    doc.Load(Server.MapPath("~//Xml//Mark.xml"));
    //获取xml文档根节点
    XmlElement root = doc.DocumentElement;
    //找到Id属性等于markValue的节点
    string path = @"//*[@id='" + markValue + "']";
    foreach (XmlNode node in root.SelectNodes(path))
    {
       XmlElement ele = node.FirstChild as XmlElement;
       int mark = int.Parse(ele.InnerText);
       mark++;
       ele.Value = mark.ToString();
    }
    //保存修改到原来的文件
    doc.Save(Server.MapPath("~//Xml//Mark.xml"));

    2.使用XmlNode
    //获得dom对象
    XmlDocument doc = new XmlDocument();
    //加载xml文档
    doc.Load(Server.MapPath("~//Xml//Mark.xml"));
    //获取xml文档根节点
    XmlElement root = doc.DocumentElement;
    //找到Id属性等于markValue的节点
    string path = @"//*[@id='" + markValue + "']";
    foreach (XmlNode node in root.SelectNodes(path))
    {
       //一:使用XmlNode对象找到我们需要的文本数据
       //有两种方法:
       //1.在元素节点级别寻找:node.InnerText
       //2.在文本节点级别寻找:node.Value 或者 node.InnerText

       //通过元素节点的方法
       //如果是node.FirstChild.Value 它的值会等于null
       //因为实际上它表示的是它的下一级子节点对象:文本节点对象
       //而不是一段文本值
       //所以如果是想在元素节点上就修改改元素的文本值
       //需要使用node.FirstChild.InnerText属性
       int mark = int.Parse(node.FirstChild.InnerText);
       mark++;
       node.FirstChild.InnerText = mark.ToString();

       //通过文本节点的方法
       //直接找到节点的最底部,也就是文本节点
       //此时node.Value才是需要的文本数据
       XmlNode xn = node.FirstChild.FirstChild;
       int mark = int.Parse(xn.Value);
       mark++;
       xn.Value = mark.ToString();
    }
    //保存修改到原来的文件
    doc.Save(Server.MapPath("~//Xml//Mark.xml"));

  • 相关阅读:
    IIS+PHP+MYSQL搭建
    visual studio 2013 打开失败 ,报错:未能完成操作,不支持此接口
    sql错误;The user specified as a definer ('tester'@'%') does not exist
    mysql报错:You must reset your password using ALTER USER statement before executing this statement.
    win 7下安装mysql zip格式
    微信小程序注册使用流程
    软件风险
    成熟度等级CMM
    软件工程活动
    tomcat
  • 原文地址:https://www.cnblogs.com/jcomet/p/1242784.html
Copyright © 2011-2022 走看看