Unity3D c#操作xml代码
1.读取xml文件
DataSet ds = new DataSet();
ds.ReadXml(Application.StartupPath + "\\filename.xml");
DataSet类表示数据在内存中的缓存,用于从数据源中检索到的数据在内存中的缓存。
ReadXml是DataSet类方法成员,(这里的参数是一个字符串,表示xml文件路径,)用于将XML架构和数据读入DataSet对象。
这样DataSet里面的Tables中保存的就是filename.xml的内容了
2.访问(读取)xml文件中的数据项
假设XML文件如下
<?xml version="1.0" encoding="utf-8"?>
<test>
<type>
<name>路飞</name>
<sex>男</sex>
<age>18</age>
</type>
<type>
<name>鸣人</name>
<sex>男</sex>
<age>17</age>
</type>
</test>
用
ds.Tables.DefaultView["name"].ToString() ;
即可访问到"路飞"
ds.Tables.DefaultView["name"].ToString() ;
即可访问到"鸣人"
ds.Tables.DefaultView["sex"].ToString() ;
即可访问到"男"
同理
ds.Tables.DefaultView["age"] ;
可访问到第一项中的属性名为age的值 就是18
DeafultView[][]数组中的第一个方括号"[]"中的数字表示将要访问的是xml文件的第几个项 第二个方括号"[]"中的数字表示要访问的是该项中的哪一个属性,以字符串来区别。(c#中的table目前我还不太了解 不过这里的访问方式不是二维数组 二维数组的访问方式应该是。table结构应该是重载过[]运算符所以这里类似于c++中二维数组的访问方式)
如果是在控制台要显示的话 可以用Console.Write(ds.Tables.DefaultView["name"].ToString());来显示"路飞"
如果用foreach()语句遍历访问输出所有表的所有项的话 可以这样
foreach (DataRowView data in ds.Tables.DefaultView)
{
Console.Write(data["name"].ToString() + " " + data["sex"].ToString() + " " + data["age"].ToString() + "\n");
}
DataRowView是一种系统定义的数据视图 表示DataTable 中的一行数据。
3.修改xml文件中的数据项
如同本文开头对DataSet的定义:DataSet类表示数据在内存中的缓存,用于从数据源中检索到的数据在内存中的缓存。
要修改xml文件中的数据项 要两步 一 修改DataSet中的数据 二 把DataSet数据写入xml文件 因为DataSet中的数据是内存中的缓存 所以直接修改的只是内存中的数据 xml文件并没有没修改 所以要写入
具体操作如下
ds.Tables.DefaultView["name"] = "飞龙大将军";
ds.Tables.DefaultView["age"] = "45";/*这样DataSet中的第一项中的"name"属性就变为了"飞龙大将军" "age"属
性变为了45*/
ds.WriteXml(Application.StartupPath + "\\filename.xml"); //这样就把DataSet中修改过的数据项写入到了filename.xml中 很不错 楼主是超人 好帖就是要顶 顶顶多好 说的非常好 真心顶 难得一见的好帖 说的非常好 很好哦