使用WWW获取本地文件夹的XML配置文件

rss"/>

Unity3D读取本地文件可以使用Resources.Load来读取放在Resources文件夹下的文件,如果不是放在该文件夹下,则可以通过WWW类来读取。

譬如读取xml的配置文件。

/// <summary>
/// 读取颜色配置
/// </summary>
/// <returns></returns>
public List<Color> GetColorXml()
{
string xmlPath = Application.dataPath + @"/Configs/Config.xml";
List<Color> colorList = new List<Color>();
if (File.Exists(xmlPath))
{
XmlDocument xmlDoc = new XmlDocument();
WWW www = new WWW("file:// " + xmlPath);
while (true)
{
if (www.isDone)
{
System.IO.StringReader stringReader = new System.IO.StringReader(www.text);
stringReader.Read(); // skip BOM
xmlDoc.LoadXml(stringReader.ReadToEnd());
//xmlDoc.LoadXml(www.text);
break;
}
} //xmlDoc.Load(xmlPath);
XmlNodeList nodeList = xmlDoc.SelectSingleNode("Config/ColorConfig").ChildNodes; //遍历每一个节点,拿节点的属性以及节点的内容
foreach (XmlElement xe in nodeList)
{
//Debug.Log("Attribute :" + xe.GetAttribute("id"));
//Debug.Log("NAME :" + xe.Name);
if (xe.Name != "Color")
{
continue;
} Color c1 = new Color();
foreach (XmlElement x1 in xe.ChildNodes)
{
if (x1.Name == "r")
{
float.TryParse(x1.InnerText, out c1.r);
c1.r = c1.r > 1f ? c1.r / 255f : c1.r;
}
if (x1.Name == "g")
{
float.TryParse(x1.InnerText, out c1.g);
c1.g = c1.g > 1f ? c1.g / 255f : c1.g;
}
if (x1.Name == "b")
{
float.TryParse(x1.InnerText, out c1.b);
c1.b = c1.b > 1f ? c1.b / 255f : c1.b;
}
if (x1.Name == "a")
{
float.TryParse(x1.InnerText, out c1.a);
c1.a = c1.a > 1f ? c1.a / 255f : c1.a;
}
}
colorList.Add(c1);
} }
return colorList; }

如果读取的xml文件有问题,可能是编码格式引起的,可以使用StringReader来读取代替www.text

xml相关问题参考:http://answers.unity3d.com/questions/10904/xmlexception-text-node-canot-appear-in-this-state.html

使用WWW获取本地文件夹的XML配置文件的更多相关文章

  1. express,node.js实现获取本地文件夹下面的全部图片文件

    http://www.luyixian.cn/javascript_show_169354.aspx 按照网上的教程试了多次,处理了各种结果后还有报错, 最后的报错是cant find module ...

  2. android红米等关于读取本地文件夹图片获取路径的问题的解决

    在Android开发中,有从本地文件夹中读取图片的功能,使用一下代码打开图片选择列表: Intent intent = new Intent();   intent.setAction(Intent. ...

  3. git中使用命令将远程仓库拉取项目在本地文件夹

    在有些时候,我们往往从github或者gitlab或者coding上面直接下载项目下来运行,但是这种情况往往没有使用git远程拉取来的安全(或者叫装逼), 所以这里我以gitLab为例子,说一下如何将 ...

  4. IDEA无法通过类加载器获取resources文件夹配置文件解决办法

    问题描述:如果IDEA无法通过类加载器获取resources文件夹配置文件,一定是Classpath编译文件没有导致的. 1.在通过配置文件来获取文件信息时,在resouces文件中放入了filena ...

  5. res文件夹及xml资源文件详解

    目录 一.values文件:存放字符串(strings).颜色(colors).尺寸(dimens).数组(arrays).样式(styles类似于CSS文件).类型等资源 二.drawable:存放 ...

  6. 脚本工具(获取某个文件夹下的所有图片属性批量生成css样式)

    问题描述: 由于有一次工作原因,就是将某个文件夹下的所有图片,通过CSS描述他们的属性,用的时候就可以直接引用.但是我觉得那个文件夹下的图片太多,而且CSS文件的格式又有一定的规律,所有想通过脚本来生 ...

  7. Fiddler高级技巧 - 映射路径到本地文件夹

    适用场景: 你是前端开发人员,要开发一个小模块,需要用到线上的环境(账号.数据.跨域等),但你又没有权限往线上传文件 你是移动测试人员,需要将一组接口的返回结果替换为另一组,最简单的办法就是使用Fid ...

  8. nodejs:本地文件夹http服务器http-server

    一.已经安装nodejs的电脑,有一个方便通过http访问本地文件夹.文件夹服务器 static files over HTTP,并不是我们平常说的node那个web服务器哦 二.好处 可以方便实现跨 ...

  9. 两个简单的python文件,实现删除本地文件夹和mongodb数据库的内容

    删除本地文件夹: import os , string , datetime ; str = '/home/niuguoqin/tmp/tomcat/'; b = (datetime.datetime ...

随机推荐

  1. [Kerberos] Java client访问kerberos-secured cluster

    使用java client访问kerberos-secured cluster,最重要的是先从admin那里拿到可用的keytab文件,用来作认证.接下来就是调整连接的配置.以下先用连接hdfs为例进 ...

  2. linuxmint 17没有vim

    首先上软件管理器中安装vim,之后配置.vimrc文件 下面是从网上摘抄的配置文件: """""""""&qu ...

  3. Android滑动菜单特效实现,仿人人客户端侧滑效果,史上最简单的侧滑实现

    http://blog.csdn.net/guolin_blog/article/details/8714621 http://blog.csdn.net/lmj623565791/article/d ...

  4. 开大你的音响,感受HTML5 Audio API带来的视听盛宴

    话说HTML5的炫酷真的是让我爱不释手,即使在这个提到IE就伤心不完的年代.但话又说回来,追求卓越Web创造更美世界这样高的追求什么时候又与IE沾过边儿呢?所以当你在看本文并且我们开始讨论HTML5等 ...

  5. 练习题(登陆-进度条-微信接口判断qq-微信接口判断列车时刻表-)

    1.写一个用户的登陆注册的界面,用户的密码用hashlib加密存在文件中,登陆时候,用户的密码要和文件中的密码一致才行 def sha(password): #加密函数 passwd = hashli ...

  6. Linux高并发机制——epoll模型

    epoll是一个特别重要的概念,常常用于处理服务端的并发问题.当服务端的在线人数越来越多,会导致系统资源吃紧,I/O效率越来越慢,这时候就应该考虑epoll了.epoll是Linux内核为处理大批句柄 ...

  7. Hbuilder MUI 选择器(Picker)设置默认选项

    mui 联动选择初始化很多人都遇到问题,就是setselectedvalue 不好用,实际上这个地方应该是有bug的 所以只能用setselectedindex 来实现 下面我是我的实现方式供大家参考 ...

  8. AngularJS 分页

    前端源码: <div> <h1>列表页33</h1> <table> <thead> <tr><td>CandiID ...

  9. jquery图片轮播

    <html> <head> <title>position</title> <style type="text/css"> ...

  10. FreeRTOS学习及移植笔记之二:在IAR和STM32F103VET上移植FreeRTOS

    上一次,我们简单的测试了FreeRTOS的基于IAR EWARM v6.4和STM32F103VET6平台的Demo,对其有了一个基本认识.接下来我们开始自己移植FreeRTOS的过程. 1.创建一个 ...