本文都是加载本地xml文件
一:pc平台下
1:不管是persistentDataPath路径还是streamingAssetsPath都可以直接使用load获取读写到
eg: XmlDocument doc = new XmlDocument(); doc.Load(path);
2:有一点要注意的是,如果你自己在assets文件夹下面自己新建了一个文件夹存放xml文件,那么在打包的时候这个文件夹下的xml在打包之后是读取不到的
解决办法:1:是直接把xml文件放在StreamAssets文件夹下面
2:在打包之后,把存放的xml文件夹放到你的****_Data文件夹下(确保路径统一,如果你的xml文件夹不是直接位于 Assets文件夹下面,例如:Aeeets/Xml/name.xml,那么你在打包之后在****_Data文件夹下面新建个文件夹Xml,最后里面放入name.xml即可)
3:用www类去加载,
用www去加载xml文件,都需要添加“file://
eg.:
IEnumerator IEPCRead(string path)
{
WWW www = new WWW("file://" + path);
//do.......
}
二:Android平台下
1:不能直接load streamingAssetsPath 路径下面的xml,可以load persistentDataPata路径下的xml
eg.:
string path1 = Application.streamingAssetsPath + "/stream.xml";
XmlDocument doc = new XmlDocument();
doc.Load(path1); //错误
string path1 = Application.persistentDataPath + "/stream.xml";
XmlDocument doc = new XmlDocument();
doc.Load(path1);// 正确
2:不能读取自己创建的文件夹下面xml
这个和pc平台下面的第2条是一样的,但是对打包后apk我们无法操作,所以在android平台下面还是不要自己创建文件夹存放xml文件。
3:用www去加载
用www去加载xml文件,添加“jar:file://协议
IEnumerator IEAndroidRead(string path)
{
WWW www = new WWW("jar:file://" + path);
//do.......
}
【修改】
ps:这里我在试的时候发现streamingAssetsPath不加“jar:file://协议(加了会出错)
date:2017.11.1
加个例子
三:总结
pc:可以直接load相应路径下的xml文件,但是要注意自己创建文件夹在打包后读取会出错
用www去加载的时候要加"file://"协议
android:只能loadpersistentDataPata路径下的xml文件,其他均不可,
用www加载的时候需要添加“jar:file://”协议,但是streamingAssetsPath不能加“jar:file://”协议