我们在做一些项目的时候,往往会用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);
(RootKind,Typetype为string类型,是自定义的)
若想把type节点作为Root的子节点,则操作如下:
Root.AppendChild(Type);
//获取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"));
}
(typevalue,kindvalue是定义好的两个list),
这样就把type和kind节点的所有属性都存储于两个list中。
以上是关于XML文件的创建以及简单查询操作,其大概思路就是这样的。如下知道其具体的脚本编写,可以下载我之前做好的一个XML脚本生成器(包括源码和客户端)
下载地址:
链接:http://pan.baidu.com/s/1c08gpB6 密码:kro7
有什么问题或者有错误的地方,欢迎大家指正,谢谢~~~