zoukankan      html  css  js  c++  java
  • 一个C#操作XML文件的简单类库

    有一次看到一个同志写的网站后台,操作XML文件方法比较生硬,就写了一个简单的操作XML的类。

    有兴趣的同志可以下载了看看,如果对您有帮助的话小弟倍感荣幸

    https://files.cnblogs.com/zhhh/zhh.Xml.rar

    这是源码,bin目录中有生成的类库,是.net2.0的项目

    有高手有兴趣了给指点一下,谢谢了

    -----------------------

    下面是这个类的说明,总体来说非常简单:

    ======================================================

    XMLReader类的主要功能是:从某个XML文件的某个节点中读取或设置一个属性,或一个子节点的文本,或一个对象(对象属性对应该节点的同名子节点)

    XMLReader类中包含下面几个功能(方法):

    1、根据一个属性名获取一个属性的值

    2、根据一个节点名获取一个节点的文本

    3、获取一个指定类型的对象

    4、根据属性名和属性值设置一个属性的值

    5、根据节点名和节点值设置一个节点的文本

    6、设置一个对象

    比如有一个XML文件存放路径是D:\jj.xml,文件内容如下:

    <?xml version="1.0"?>
    <Root>
    <Man>
    <Name>XiaoBei</Name>
    <Age>25</Age>
    <IsMale>False</IsMale>
    </Man>
    </Root>

    你可以先引入命名空间zhh.Xml

    然后使用下面方法创建一个XMLReader对象

    XMLReader xr =new XMLReader("D:\jj.xml", "Root/Man");

    这句话的意思是将XMLReader对象定位到D:\jj.xml文件下的Root节点下的Man节点,以后的操作都将针对该节点执行。

     

    执行完上面的对象声明语句以后,就可以直接使用它了。

    比如,这个语句可以为当前节点添加一个名为name的Xml节点属性,值为ok。

    xr.SetAttribute("name", "ok");

    执行完以后XML文件就变成这个样子了:

    <?xml version="1.0"?>
    <Root>
    <Man name="ok">
    <Name>XiaoBei</Name>
    <Age>25</Age>
    <IsMale>False</IsMale>
    </Man>
    </Root>

    当然,使用下面语句就可以将刚才写入XML文件的ok读取出来

    string v = xr.GetAttribute("name");

    如果要改变当前节点下的Name子节点中的值,可以使用下面这条语句

    xr.SetChildNodeText("Name", "XiaoBei");

    同样,使用这条语句可以把刚才存入的值语取出来

    string v = xr.GetChildNodeText("Name");

    最基本的两个功能完了,下面看一个稍微复杂一点的功能:

    比如有如下实体类:

    publicclass Man
    {
    publicstring Name { get; set; }
    publicint Age { get; set; }
    publicbool IsMale { get; set; }
    }

    我们使用这个语句就可以直接把XML文件中的内容读取出来(将子节点中的内容直接封装到对象对应的属性中):

    Man m = xr.GetObjectByClassPath(new Man().GetType().ToString()) as Man;

    同样,也可以直接将下面这个对象保存到当前节点下:

    Man m =new Man() { Age =25, IsMale =false, Name ="XiaoBei" };
    xr.SetObject(m);

    不过,在进行对象反射的时候暂时只支持基本类型的数据操作

  • 相关阅读:
    分布式session管理解决方案
    RabbitMQ知识汇总
    RabbitMQ之集群模式总结
    Flexbox参数详解
    CSS Lint
    javascript中的defer属性和async属性
    简介BFC
    GIT 牛刀小试 (第二发)
    GIT 牛刀小试 (第一发)
    如何让浏览器支持HTML5标签
  • 原文地址:https://www.cnblogs.com/zhhh/p/1905964.html
Copyright © 2011-2022 走看看