使用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. silverlight_容器

    Canvas絕對佈局 定位Canvas.Top.Canvas.Left ZIndex屬性 若制定2個控制項重疊,那麼後聲明控制項會覆蓋先聲明的控制項.此時可以使用Canvas.ZIndex屬性來改變它 ...

  2. CSS高效开发实战:CSS 3、LESS、SASS、Bootstrap、Foundation --读书笔记(4)构造尺寸更灵活的背景

    相比传统的图片背景来说,使用CSS构造背景色不仅可以降低网络传输的开销,更由于其尺寸的可控性受到开发者的青睐. 如设计师设计了一张背景图片作为标题背景,如图5.18所示.对于用电脑浏览网页的用户来说, ...

  3. C# 的界面控件属性修改线程安全问题

    今天在实验delegate与thread 在初步的实验结束后,因为原来的delegate只有一个函数会被调用,感觉没有达到delegate的极致,所以又重新自己定义了一个delegate,在另一个线程 ...

  4. 【经验】在CSS中定义超链接样式a:link、a:visited、a:hover、a:active的顺序

    以前用CSS一直没有遇到过这个问题,在最近给一个本科同学做的项目里面.出现一些问题,搜索引擎查了一些网站和资料,发现很多人问到这个问题,给出的结果我试了试,大部分都不正确. 给出我试的顺序,可能会对大 ...

  5. Windows7 + Ubuntu双系统安装过程记录

    本文为在已安装Windows7系统的前提下安装Ubuntu Kylin 14.10系统的过程以及期间出现的各种问题的记录. Ubuntu系统下载 Ubuntu Kylin中文官方网站:http://w ...

  6. PHP 图片处理工具类(添加水印与生成缩略图)

    =================ImageTool.class.php================= <?php class ImageTool { private $imagePath; ...

  7. jQuery视差滚动插件,(附原理分析,调用方法)

    演示地址:http://www.jq22.com/jquery-info1799 jquery插件,使用验证过可用. 分析源代码后总结原理:设置background样式为fixed,判断浏览器滚动距离 ...

  8. Java 读写XML

    package dome4jTest; import java.io.FileWriter; import java.io.IOException; import java.net.URL; impo ...

  9. 使用json把php数据传给js处理

    先创建下面的两个文件,并将代码拷贝进去,然后打开json.html文件: json.html文件: <!DOCTYPE html> <html> <head> &l ...

  10. 算法系列:FFT 001

    转载自http://blog.csdn.net/orbit/article/details/17210461 2012年9月的时候,一个南京的大学生从电视台播放的一段记者采访360总裁周鸿祎的视频中破 ...