public bool Load() { XmlDocument yinJieXml = new XmlDocument(); mYinjieDescs.Clear(); try { string path = ""; #if __IOS__ var resourcePrefix = "Pinyin.iOS.Data"; path = string.Format("{0}.{1}", resourcePrefix, YinjieXmlFileName); #elif __ANDROID__ var resourcePrefix = "Pinyin.Droid.Data"; path = string.Format("{0}.{1}", resourcePrefix, YinjieXmlFileName); #else path = YinjieXmlFileName; #endif #if __MOBILE__ var assembly = typeof(PinyinPage).GetTypeInfo().Assembly; Stream stream = assembly.GetManifestResourceStream(path); yinJieXml.Load(stream); #else yinJieXml.Load(path); #endif string xpath = string.Format("/{0}/{1}", YinjieRootElement, YinjieElement); XmlNodeList yinjieList = yinJieXml.SelectNodes(xpath); if (null != yinjieList) { foreach (XmlNode yinjie in yinjieList) { YinjieDesc yjDesc = new YinjieDesc(); yjDesc.Yinjie = yinjie.Attributes[YinjieNameAttribute].Value; yjDesc.Desc = yinjie.ChildNodes[0].InnerText; yjDesc.Tone1Samples = yinjie.ChildNodes[1].InnerText; yjDesc.Tone2Samples = yinjie.ChildNodes[2].InnerText; yjDesc.Tone3Samples = yinjie.ChildNodes[3].InnerText; yjDesc.Tone4Samples = yinjie.ChildNodes[4].InnerText; mYinjieDescs.Add(yjDesc); } } return(true); } catch (Exception e) { #if DEBUG System.Console.WriteLine(e.Message); #endif return(false); } }
public bool IsYinjieExist(YinjieDesc desc) { return(null != mYinjieDescs.Find( delegate(YinjieDesc yjd) { return yjd.Yinjie.Equals(desc.Yinjie); } )); }
public bool AddYinjieDesc(YinjieDesc desc) { if (IsYinjieExist(desc)) { return(false); } mYinjieDescs.Add(desc); return(true); }