| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 | using System.Collections.Generic;using System.Xml;namespace OTSDataType{    public struct StringRes    {        public int key;        public string text;        public string Description;        public string DownList;    }    public class ResGroup    {        public int key;        public string text = "";        public string Description = "";        public string DownList = "";        public SortedDictionary<int, StringRes> mapRes = new SortedDictionary<int, StringRes>();    }   public  class XmlResourceData    {        static XmlResourceData instance =new XmlResourceData();        private SortedDictionary<int, ResGroup> resGroup = new SortedDictionary<int, ResGroup>();        public XmlResourceData()        {            LoadStringFromXml();        }        public void GetStringByKey(int grpKey, int itmKey, ref string text, ref string des,ref string downlist)        {            text = resGroup[grpKey].mapRes[itmKey].text;            des = resGroup[grpKey].mapRes[itmKey].Description;            downlist = resGroup[grpKey].mapRes[itmKey].DownList;        }        public string GetStringByKey(int grpKey, int itmKey)        {            return resGroup[grpKey].mapRes[itmKey].text;        }        public string GetStringByKey(int itmKey)        {            return resGroup[0].mapRes[itmKey].text;        }        public string GetGroupTextByKey(int grpKey)        {            return resGroup[grpKey].text;        }        public void GetGroupTextByKey(int grpKey, ref string text, ref string des)        {            text = resGroup[grpKey].text;            des = resGroup[grpKey].Description;        }        public void SetStringByKey(int grpkey, int itmkey, string value, string des)        {            StringRes sr = new StringRes();            sr.text = value;            sr.Description = des;            resGroup[grpkey].mapRes[itmkey] = sr;        }        public bool LoadStringFromXml()        {            XmlDocument xml = new XmlDocument();            xml.Load(".\\Resources\\XMLData\\LanguageDefine.xml");            XmlNode root = xml.SelectSingleNode("Language");            XmlNode root2 = root.SelectSingleNode("DefaultLanguage");            string ss = root2.InnerText;            XmlDocument doc1 = new XmlDocument();            if (ss == "EN")            {                doc1.Load(".\\Resources\\XMLData\\ResourceForCpp\\ResourceForReport-EN.xml");//载入xml文件            }            else if (ss == "ZH")            {                doc1.Load(".\\Resources\\XMLData\\ResourceForCpp\\ResourceForReport-ZH.xml");//载入xml文件            }            root = doc1.SelectSingleNode("XMLData");            root2 = root.SelectSingleNode("collection");                       XmlNodeList childlist = root2.ChildNodes;            for (int i = 0; i < childlist.Count; i++)            {                int colkey = -1;                if (childlist[i].Attributes["grpKey"] != null)                {                    colkey = int.Parse(childlist[i].Attributes["grpKey"].Value);                }                string colText = "";                if (childlist[i].Attributes["text"] != null)                {                    colText = childlist[i].Attributes["text"].Value;                }                string colDes = "";                if (childlist[i].Attributes["description"] != null)                {                    colDes = childlist[i].Attributes["description"].Value;                }                ResGroup rg = new ResGroup();                rg.key = colkey;                rg.text = colText;                rg.Description = colDes;                                XmlNodeList childlist2 = childlist[i].ChildNodes;                for (int j = 0; j < childlist2.Count; j++)                {                    StringRes sr = new StringRes();                    int key = int.Parse(childlist2[j].Attributes["itemKey"].Value);                    sr.key = key;                    sr.text = childlist2[j].Attributes["itemText"].Value;                    if (childlist2[j].Attributes["boDownList"] != null)                    {                        sr.DownList = childlist2[j].Attributes["boDownList"].Value;                    }                    else                    {                        sr.DownList = "空";                    }                    if (childlist2[j].Attributes["description"] != null)                    {                        sr.Description = childlist2[j].Attributes["description"].Value;                    }                    else                    {                        sr.Description = "空";                    }                    try                    {                        rg.mapRes[key] = sr;                    }                    catch (System.Exception ex)                    {                       // MessageBox.Show(ex.ToString());                    }                }                resGroup[colkey] = rg;            }            return true;        }               public static XmlResourceData GetInstance()        {            //static MultiLang instance;            if (instance == null)            {                instance.LoadStringFromXml();            }                       return instance;        }    }}
 |