关于XML的读写操作以及查询操作

来源:互联网 发布:linux查看jar文件内容 编辑:程序博客网 时间:2024/06/05 05:48

我们在做一些项目的时候,往往会用XML来配置内部成员,部署他们之间的关系,使得程序运行起来不至于太混乱,今天就稍微讲解一下关于XML的一些用法。

XML文件的脚本形式非常的简单,所以XML文件不一定由程序员来编写,关于项目中元素之间的层级关系,策划是最清除的,所有有时候xml文件是由策划或者部分美工来编写,或者是程序员给他们编写一些内定好形式的XML生成器。下面我就我曾经写过的一个生成器简单的做一些关于XML文件的读写以及查询操作。

首先是创建XML文件:(以根节点Product为例)

  //实例化一个XML文档
            XmlDocument xmlDoc = new XmlDocument();
            //创建root节点,最上层节点
            XmlElement
 rootnode = xmlDoc.CreateElement("Product");


            //将节点添加到而文件中并保存
            xmlDoc.AppendChild(rootnode);


            //设置文件路径,并保存路径,然后保存文档
            path =Application.persistentDataPath+"/" + XMLname.text + ".xml";
           
            xmlDoc.Save(path);

            print("XML创建成功!!!");

 这个就生成只有一个根节点的XML文件。下面就是往根节点下面添加若干子节点以及元素。

 //创建下一个节点
        XmlElement Root = xmlDoc.CreateElement("Root");
        //下一级节点
        XmlElement Type = xmlDoc.CreateElement("Type");


接下来就是给根节点Product下面的Root,和Type节点赋予属性:

 //设置节点属性
        Root.SetAttribute("kind", RootKind);
        Type.SetAttribute("type", Typetype);

RootKindTypetype为string类型,是自定义的)


若想把type节点作为Root的子节点,则操作如下:

 Root.AppendChild(Type);


然后获取根节点,并添加root节点,其操作如下:

  //获取XML根节点  
        XmlNode root_node = xmlDoc.SelectSingleNode("Product");

 root_node.AppendChild(Root);

最后添加的文件中:

xmlDoc.AppendChild(root_node);

        //保存并覆盖原有文件
        xmlDoc.Save(path);

这样就生成了拥有根节点Product,以及Root,和Type两个子节点(type为root的子节点)。

同样的 若是想在某个节点下面添加若干个子节点,其操作方法如上。


关于xml读取查询操作,比如,我想取出product节点下的所有子节点的属性,存储于链表中。其操作如下:


//获取XML根节点  
        XmlNode root_node = xmlDoc.SelectSingleNode("Product");
        foreach (XmlNode xm in root_node)
        {
            XmlElement xe = (XmlElement)xm;
            foreach (XmlNode xm2 in xe.ChildNodes)
            {
                XmlElement xe2 = (XmlElement)xm2;
                typevalue.Add(xe2.GetAttribute("type"));
                //print(xe2.GetAttribute("type"));


            }


            kindvalue.Add(xe.GetAttribute("kind"));
           // print(xe.GetAttribute("kind"));
        }

typevaluekindvalue是定义好的两个list),

这样就把type和kind节点的所有属性都存储于两个list中。


以上是关于XML文件的创建以及简单查询操作,其大概思路就是这样的。如下知道其具体的脚本编写,可以下载我之前做好的一个XML脚本生成器(包括源码和客户端)


下载地址:

链接:http://pan.baidu.com/s/1c08gpB6 密码:kro7


有什么问题或者有错误的地方,欢迎大家指正,谢谢~~~





0 0
原创粉丝点击