话说现在常常蹦出个字来拿不准读音,经常担心念个错别字啥的。有需求就有产出,写工具得了。第一步当然是要找到数据源,遗憾的是没有新华字典的webservice,只好把检索部分从网上扒下来了,解释部分直接flyout了。
1. 数据来源于http://xh.5156edu.com/
2. 用webclient的downloaddata方法将部首检索部分网页download下来
3. 然后用正则表达式截取需要的字符串,加工分割写入XML文件(画外音,这网站上的静态网页也有差错遗漏啥的,以至于取出的字符串有几个就不对了,要像保证准确性,还得自己检查调整一下xml的数据,主要是删除一些多余的字符)。XML文件大致如下
<BS BSBHS="1" BS="丶" HZS="10">
<HZ>
<BHS>2</BHS>
<JS>1748</JS>
<HZ>丷</HZ>
<PY>bā</PY>
</HZ>
<HZ>
<BHS>3</BHS>
<JS>1749</JS>
<HZ>之</HZ>
<PY>zhī</PY>
</HZ>
<HZ>
<BHS>3</BHS>
<JS>1750</JS>
<HZ>义</HZ>
<PY>yí,yì</PY>
</HZ>
<HZ>
<BHS>4</BHS>
<JS>1751</JS>
<HZ>为</HZ>
<PY>wéi,wèi</PY>
</HZ>
<HZ>
4. 然后就是写sidebar gadget了, 三个下拉框联动分别选择部首笔画数-〉部首-〉汉字。这三个下拉框的数据填充是通过XmlNode.SelectNodes 读取之前准备的部首检索XML来实现的,其中的关键是查询字符串XPath的写法,详情见http://msdn.microsoft.com/en-us/library/ms256086.aspx
5. 汉字下拉框已将这个汉字的拼音列出,如果要了解详细的解释,回车就打开flyout页显示。如下所示
6. 如果想做成本地的字典,不需要联网就可以查字,那得把所有汉字的解释都扒下来,等有空的时候再写吧。
已上载到Windows Live Gallery, 现在可以单击 http://gallery.live.com/LiveItemDetail.aspx?li=0ac0d33d-29cb-4ea6-8911-793c288ed849 访问它.