コード例 #1
0
        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);
            }
        }
コード例 #2
0
 public bool IsYinjieExist(YinjieDesc desc)
 {
     return(null != mYinjieDescs.Find(
                delegate(YinjieDesc yjd)
     {
         return yjd.Yinjie.Equals(desc.Yinjie);
     }
                ));
 }
コード例 #3
0
        public bool AddYinjieDesc(YinjieDesc desc)
        {
            if (IsYinjieExist(desc))
            {
                return(false);
            }

            mYinjieDescs.Add(desc);
            return(true);
        }