一个简单的小测试程序实现(已做优化)
<div id="cnblogs_post_body">原文链接:http://www.cnblogs.com/Wade-/archive/2012/06/23/2559426.html
这是一个用Sliverlight实现的一个测试程序&ldquo;测试你古代的名字&rdquo;,内容来源于互联网。
这是程序实现效果:
http://pic002.cnblogs.com/images/2012/404689/2012062411362353.jpg
在输入姓名首字母和生日的月份以及选择性别后,再按查询键,实现测试程序过程。
本程序中的数据是利用XML文件储存数据的,应此需要用到System.Xml和System.Xml.Linq两个命名空间。在这里我把关于XML文件的操作放在XMLReader类中:
<div class="cnblogs_code">using System; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Ink; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using System.Xml; using System.Xml.Linq; namespace SilverlightApplication2 { /// <summary> /// XML的读取函数 /// </summary> public class XMLReader { public enumSex:int { boy=1, girl=2 } private Uri uri; private XNode nameNode; private XNode girlDayNode; private XNode girlMonthNode; private XNode boyDayNode; private XNode boyMonthNode; /// <summary> /// 实例化一个XMLReader类 /// </summary> /// <param name="url">xml文件路径</param> public XMLReader(Uri url) { uri = url; XDocument xdoc=newXDocument(); xdoc= XDocument.Load(uri.ToString()); nameNode = xdoc.Root.FirstNode; girlDayNode = ((XElement)(xdoc.Root.FirstNode.NextNode)).FirstNode; girlMonthNode = ((XElement)(xdoc.Root.FirstNode.NextNode)).FirstNode.NextNode; boyDayNode = ((XElement)(xdoc.Root.LastNode)).FirstNode; boyMonthNode = ((XElement)(xdoc.Root.LastNode)).FirstNode.NextNode; } /// <summary> /// 获取指定日期所代表的名字 /// </summary> /// <param name="sex">性别(男孩,女孩)</param> /// <param name="day">日期</param> /// <returns>指定日期所代表的名</returns> public string GetDayText(Sex sex,string day) { string value=""; if(sex==Sex.boy) { XElement xe=(XElement) boyDayNode; foreach (XElement name in xe.Elements()) //循环查找XElement { if (name.FirstAttribute.Value == day)//判断其FirstAttribute是否为指定值 { value = name.Value;//赋值 break; //跳出循环 } } } else if (sex == Sex.girl) { XElement xe = (XElement)girlDayNode; foreach (XElement name in xe.Elements()) { if (name.FirstAttribute.Value == day) { value = name.Value; break; } } } return value; } /// <summary> /// 获取指定月份所代表的名字 /// </summary> /// <param name="sex">性别(男孩,女孩)</param> /// <param name="day">月份</param> /// <returns>姓首字母</returns> public string GetMonthText(Sex sex, string month) { string value = ""; if (sex == Sex.boy) { XElement xe = (XElement)boyMonthNode; foreach (XElement name in xe.Elements()) { if (name.FirstAttribute.Value == month) { value = name.Value; } } } else if (sex == Sex.girl) { XElement xe = (XElement)girlMonthNode; foreach (XElement name in xe.Elements()) { if (name.FirstAttribute.Value == month) { value = name.Value; } } } return value; } /// <summary> /// 获取指定姓首字母所代表的姓 /// </summary> /// <param name="name">姓首字母</param> /// <returns>指定姓首字母所代表的姓</returns> public string GetNameText(string name) { string value = ""; XElement xe = (XElement)nameNode; foreach (XElement ename in xe.Elements()) { if (ename.FirstAttribute.Value == name) { value = ename.Value; } } return value; } } }
页:
[1]