[开发手记] 一款基于命令行的英英词典 (A CLI-Based EE Dictionary)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[开发手记] 一款基于命令行的英英词典 (A CLI-Based EE Dictionary)相关的知识,希望对你有一定的参考价值。

A CLI-Based EE Dictionary Supported by API of "Merriam-Webster‘s Collegiate® Dictionary with Audio"
(一款基于命令行的英英词典, 由<韦氏®大词典(综合版)>API提供支持)

GitHub项目地址: https://github.com/hwding/seekDict

如果有疑问及建议请在该repository页面的issues中提出!

 

准备工作:

 

程序流程:

COND1: 传入单词或词组 -> 本地是否已有缓存文件? -> 否 -> 拼接请求URL -> 提交 -> 取得返回XML -> 保存在本地 -> 开始解析XML文件

 

 -> 是否为有效查询? -> 是 -> 打印结果

 

                  -> 否 -> 是否有建议单词或词组? -> 是 -> 提示查无此词并打印建议 -> 删除本地缓存文件

 

                             -> 否 -> 提示查无此词 -> 删除本地缓存文件

 

COND2: 传入单词或词组 -> 本地是否已有缓存文件? -> 是 -> 开始解析XML文件 -> 打印结果

可以看出将查询有效的结果缓存在本地可以极大程度的简化重复查询的流程, 以提高效率.

 

难点:

  • 返回的XML层次极为复杂, 需要逐级拆解以提取有效信息
  • 不同层次信息的组织与显示

 

注意事项:

 

1 File file = new File(CACHE_PATH, string + ".tmp");
2 DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
3 DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
4 Document document = documentBuilder.parse(file);
5 Element rootElement = document.getDocumentElement();
6 NodeList content = rootElement.getChildNodes();

 

 

首先读出请求之后缓存在本地的结果文件, 将其解析为Document类, 再使用DOM方法去解析XML中的节点信息

逐层解析后, 将收集到的信息根据XML中的结点层次有序的反馈在CLI中

(具体实现请见见项目地址中的源码, 注释会陆续补充)

 

截图:

  帮助信息(正在完善中)

  技术分享

 

  有效查询结果

  技术分享

 

  无效查询结果并提供拼写建议

  技术分享

以上是关于[开发手记] 一款基于命令行的英英词典 (A CLI-Based EE Dictionary)的主要内容,如果未能解决你的问题,请参考以下文章

003_如何学好英语?

centos安装词典——图形界面的和命令行的

学习手记-基于iTOP4412开发板Linux最小系统烧录

HoloLens开发手记 - Unity之语音输入

在线词典--(流程分析)

GoldenDict(for Linux)配置无道词典