unity 与 XML 解析
来源:互联网 发布:淘宝上为啥不卖电视棒 编辑:程序博客网 时间:2024/06/05 17:48
xml文件:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><HeadSelect xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <info HeadID="1"> <Head_Name>精灵男</Head_Name> <Head_Type>1</Head_Type> <Atlas>TeamHead2</Atlas> <Atlas_Num>16</Atlas_Num> <Used_Condition>0</Used_Condition> <Account_Level>1</Account_Level> </info> <info HeadID="2"> <Head_Name>精灵女</Head_Name> <Head_Type>2</Head_Type> <Atlas>TeamHead2</Atlas> <Atlas_Num>17</Atlas_Num> <Used_Condition>0</Used_Condition> <Account_Level>1</Account_Level> </info></HeadSelect>
解析如下:
public class ReadHeroHeadConfig{ XmlDocument xmlDoc = null; public ReadHeroHeadConfig(string xmlFilePath) { //TextAsset xmlfile = Resources.Load(xmlFilePath) as TextAsset; ResourceUnit xmlfileUnit = ResourcesManager.Instance.loadImmediate(xmlFilePath, ResourceType.ASSET); TextAsset xmlfile = xmlfileUnit.Asset as TextAsset; if (!xmlfile) { Debug.LogError(" error infos: 没有找到指定的xml文件:" + xmlFilePath); } xmlDoc = new XmlDocument(); xmlDoc.LoadXml(xmlfile.text); XmlNodeList infoNodeList = xmlDoc.SelectSingleNode("HeadSelect").ChildNodes; for (int i = 0; i < infoNodeList.Count; i++)//XmlNode xNode in infoNodeList) { if ((infoNodeList[i] as XmlElement).GetAttributeNode("HeadID") == null) continue; string typeName = (infoNodeList[i] as XmlElement).GetAttributeNode("HeadID").InnerText; HeadSelectConfigInfo HeadSelectInfo = new HeadSelectConfigInfo(); HeadSelectInfo.HeroHeadID = Convert.ToInt32(typeName); foreach (XmlElement xEle in infoNodeList[i].ChildNodes) { #region 搜索 switch (xEle.Name) { case "Head_Name": HeadSelectInfo.HeroHeadName = Convert.ToString(xEle.InnerText); break; case "Head_Type": HeadSelectInfo.HeroHeadType = GameMethod.ResolveToIntList(xEle.InnerText); break; case "Atlas": HeadSelectInfo.HeroHeadAtlas = Convert.ToString(xEle.InnerText); break; case "Atlas_Num": HeadSelectInfo.HeroHeadAtlas_Num = xEle.InnerText; break; case "Used_Condition": HeadSelectInfo.HeroUsedCondition = Convert.ToInt32(xEle.InnerText); break; case "Account_Level": HeadSelectInfo.HeroUsedLevel = Convert.ToInt32(xEle.InnerText); break; } #endregion } ConfigReader.headSelectXmlInfoDict.Add(HeadSelectInfo.HeroHeadID, HeadSelectInfo); } } //public st}
FR:海涛高软(hunk Xu)
QQ技术交流群:386476712
阅读全文