`
liuway
  • 浏览: 57112 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

xml操作

    博客分类:
  • .net
XML 
阅读更多
using System;
using System.Xml;
using System.Collections.Generic;
using System.Text;
namespace janyo.io
{
   public class XmlUtility
    {
        private static string xmlfilename="";
    
        public static string XmlFileName
        {
            set
            {
                xmlfilename=value;
            }
        }
        private void loadXmlDoc()
        {
            //XmlDocument xdoc = new XmlDocument();
            //xdoc.Load(xmlfilename);
          
        }
       private static string getFileName()
       {
           return "";
       }
        /// <summary>
        /// 读取节点的值
        /// </summary>
        /// <param name="node">节点名称</param>
        /// <returns></returns>
        public static string getValueByNode(string node)
        {
           string temp ="";
             XmlTextReader xrd =new XmlTextReader(xmlfilename);
           
            while (xrd.Read())
            {
                if (xrd.NodeType==XmlNodeType.Element)
                {
                    if (xrd.Name==node)
                    {
                     
                   temp=xrd.ReadElementContentAsString();
                   return temp;
                      
                    }
                 }
            }
            xrd.Close();
            return "";
        }
       /// <summary>
       /// 查找某个所有匹配条件的节点值
       /// </summary>
        /// <param name="xpath">节点xpath表达式;/siteconfig/item[@id=var]</param>
       /// <returns></returns>
        public static System.Collections.ArrayList getItems(string xpath)
        {
            XmlDocument xmldoc = new XmlDocument();
            xmldoc.Load(xmlfilename);
            XmlNodeList xnodelist = xmldoc.SelectNodes(xpath);
            System.Collections.ArrayList arr = new System.Collections.ArrayList();
           if (xnodelist.Count==0)
         {
           return null;
         }
            foreach (XmlNode xnod in xnodelist)
            {
                arr.Add(xnod.InnerText);
            }
            xmldoc = null;
            
            return arr;
        }
        /// <summary>
        /// 读取某个节点的属性值
        /// </summary>
        /// <param name="node">节点名称</param>
        /// <param name="attrs">属性,可以读写该节点多个属性</param>
        /// <returns></returns>
       public static System.Collections.ArrayList getValueByNode(string node,params string[] attrs)
        {
            
             XmlReader xrd = XmlReader.Create(xmlfilename);
            while (xrd.Read())
            {
                if (xrd.NodeType == XmlNodeType.Element)
                {
                   
                    if(xrd.Name==node)
                    {
                        //string[] temp=null;
                        System.Collections.ArrayList arlist = new System.Collections.ArrayList();
                       // int i =0;
                        foreach (string attr in attrs)
                        {
                           arlist.Add(xrd.GetAttribute(attr));
                           // i++;
                        }
                        return arlist;
                    }
                }
            }
            xrd.Close();
            return null;
        }
        /// <summary>
        /// 删除某个节点
        /// </summary>
        /// <param name="xpath">节点xpath表达式;/siteconfig/item[@id=var]</param>
        public static void deletNode(string xpath)
        {
            XmlDocument xmldoc = new XmlDocument();
            xmldoc.Load(xmlfilename);
           XmlNode xnod=xmldoc.SelectSingleNode(xpath);
           xnod.ParentNode.RemoveChild(xnod);
            xmldoc.Save(xmlfilename);
           
        }
        /// <summary>
        /// 更新某个节点的值
        /// </summary>
        /// <param name="xpath">节点xpath表达式;/siteconfig/item[@id=var]</param>
        /// <param name="value">更新值<node></node></param>
        public static void updateNode(string xpath, string value)
        {
            XmlDocument xmldoc = new XmlDocument();
            xmldoc.Load(xmlfilename);
            XmlNode xnod = xmldoc.SelectSingleNode(xpath);
            xnod.InnerText = value;
            xmldoc.Save(xmlfilename);
            xmldoc = null;
        }
       /// <summary>
        /// 批量更新节点屬性的值
        /// </summary>
        /// <param name="xpath">节点xpath表达式;/siteconfig/item[@id=var]</param>
        /// <param name="attrs">屬性名稱值對<node></node></param>
        public static void updateNode(string xpath, string[] attrs)
        {
            XmlDocument xmldoc = new XmlDocument();
            xmldoc.Load(xmlfilename);
            XmlNodeList xnodlist = xmldoc.SelectNodes(xpath);
            foreach (XmlNode xnod in xnodlist)
            {
                xnod.Attributes[attrs[0]].Value=attrs[1];
            }
          //  xnod.InnerText = value;
            xmldoc.Save(xmlfilename);
            xmldoc = null;
        }
        /// <summary>
        /// 在指定节点插入子节点
        /// </summary>
        /// <param name="xpath">节点xpath表达式;/siteconfig/item[@id=var]</param>
        /// <param name="value">节点值<node></node></param>
        /// <param name="cNode">待插入的节点</param>
        public static void insertNode(string xpath, string cNode,string value,params string[] attrs)
        {
            XmlDocument xmldoc = new XmlDocument();
            xmldoc.Load(xmlfilename);
            XmlNode xnod = xmldoc.SelectSingleNode(xpath);
            XmlElement xn = xmldoc.CreateElement(cNode);
            int attrsLength = attrs.GetUpperBound(0)+1;
            if (attrsLength%2!=0)
            {
                throw new Exception("屬性名稱值對不相等");
            }
            for (int i = 0; i <attrs.GetUpperBound(0)+1; i++)
            {
                xn.SetAttribute(attrs[i], attrs[i+1]);
                i++;
            }            
            xnod.AppendChild(xn);
            xnod.LastChild.InnerText=value;
            xmldoc.Save(xmlfilename);
            xmldoc = null;
        }
    }
}

 

分享到:
评论

相关推荐

    xml操作xml操作xml操作xml操作xml操作

    xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作xml操作

    XML操作类XML操作类XML操作类

    XML操作类XML操作类XML操作类XML操作类XML操作类XML操作类XML操作类XML操作类

    基于QT封装的XML操作,显示类

    基于QT的QDomDocument封装的XML操作,显示类。使在QT中操作XML比较方便,快捷。如果觉得那里封装的不好,欢迎提出宝贵意见,建议,我再改正。

    动态生成Rss文件 Xml操作 Xml文件的修改

    动态生成Rss文件 Xml操作 Xml文件的修改动态生成Rss文件 Xml操作 Xml文件的修改动态生成Rss文件 Xml操作 Xml文件的修改动态生成Rss文件 Xml操作 Xml文件的修改动态生成Rss文件 Xml操作 Xml文件的修改动态生成Rss文件...

    c++的xml操作类

    tinyxml,很好用的xml操作类,c++版,删除了乱七八糟的工程文件,用时include一下两个头文件即可。具体使用方法参考:http://blog.csdn.net/zhangrentian/archive/2010/01/15/5194875.aspx

    XML操作类(完整)

    XML操作类(完整)使用于C#领域,更好的操作XML文件

    c# 下xml操作类

    c#下操作xml文件类,方便调用操作。 xml操作日趋常见,xml格式相对规范,通过xml存储信息更加方法,采用该类可以方便操作。

    简单实用的XML操作类

    简单实用的XML操作通用类,实现的功能包括创建XML文档、增加节点、删除节点和读取节点的值等。

    C# XML操作类库(加强版)

    最近做项目,要用C#写,而且数据格式是那种节点套节点能把人套死的XML,看着都觉得晕,而且节点跳跃性很大,真心觉得单纯用环境自带的XMLDocument类完全达不到自己的需要,因为XML里面涉及到节点循环,循环里面又套...

    java对xml操作的项目案例

    java对xml操作,包括各种读写,java对xml操作的项目案例

    Xml操作类(C#)

    Xml操作类,项目中使用的,包含读取数据、插入数据、修改数据、删除数据 附带使用方法。

    xml操作,内含源码

    初学者学习使用的xml操作,例子简单,容易上手

    xml教程(增删改)xml教程 xml xml操作教程 xml读取-程序员百味www.bywei.cn

    xml教程(增删改)xml教程 xml xml操作教程 xml读取-程序员百味www.bywei.cnxml教程(增删改)xml教程 xml xml操作教程 xml读取-程序员百味www.bywei.cnxml教程(增删改)xml教程 xml xml操作教程 xml读取-程序员百...

    xml操作类,xml操作类

    xml的所有操作.xml的所有操作.xml的所有操作.xml的所有操作.

    xml操作C#源码

    该代码主要实现了根据xml中定义的扩展字段Expand动态生成textbox,填写后更新xml的一个源码,包括xml的增删改查功能。算是比较全的一个xml操作源码了。主要是为了公司项目做的可行性研究,欢迎交流分享。

    asp.net 用xml操作word asp.net 用xml操作word

    asp.net 用xml操作wordasp.net 用xml操作wordasp.net 用xml操作wordasp.net 用xml操作wordasp.net 用xml操作wordasp.net 用xml操作wordasp.net 用xml操作wordasp.net 用xml操作wordasp.net 用xml操作wordasp.net 用...

    XML操作类 增删改查节点操作

    对xml操作的整理,包括增、删、改 、查方法操作

    vb6中xml 操作模块 完整代码.

    包含了常用的xml操作.并有详细说明.不需要在写任何代码.包含了xml的常用操作.代码中使用了xml4.0的库.需要自己手动添加.

    基于tinyxml2的xml操作库再封装

    对tinyxml2再封装,使使用更加便捷,方便。*******************************

    XMLHelper xml操作类 c#

    c# XMLHelper xml操作类

Global site tag (gtag.js) - Google Analytics