利用JDOM开发日文外来语网路电子辞典

dom

(作者:陈广佳)

本文并不意图对JDOM这种用于快速开发XML的第三方工具包进行详尽的介绍或要涵盖JDOM对XML的所有处理方法,因为这方面的文章及资料已经很丰富,仅希望能通过本人使用JDOM进行具体开发的事例给没有用过或刚开始使用JDOM的朋友们一个对该API较具形态的一点认知。

项目概述以及XML API的选择--JDOM API
本人所在的出版社近期将中日韩文工具书转成了电子资料,在开发教学多媒体的同时希望能够开发基于网络的电子辞典(先进行日文外来语词典的开发),后一项目由本人负责。由于项目将以JAPPLET作为客户端的选择,而词库资料以XML文档形式提供,因此我开始收集JAVA对XML处理的相关资料。我最先是在JAVA.SUN.COM上看到JDOM的有关介绍,在访问了JDOM ORG的网站以及看了几篇对JDOM叙述得很好的文章后,我决定使用JDOM来完成该项目中对XML的处理。

JDOM API版本是在JDOM ORG上下载的JDOM Beta6,现在最新的版本是JDOM Beta7,相对于Beta6,Beta7进行了极大的改进。(下载JDOM的最新版本)
我使用JBUILDER3进行开发,JDOM需要做为一个增加的类库加进其JAVA Libraries里。我的JDOM是装在E盘的根目录下,配置如下:

NAME:JDOM
CLASS PATH:E:\jdom6bt\jdom-b6\build\jdom.jar
SOURCE PATH:E:\jdom6bt\jdom-b6\src\java.zip
DOC PATH:E:\jdom6bt\jdom-b6\build\jdom.jar
但JBUILDER5已经对JDOM有直接的支持,JDOM API已经内嵌在其JAVA Libraries里,这样我们使用JDOM就更方便。

词库数据资料XML文档结构
在该项目中XML的文档结构比较简单,以<dict>为根,主体以日文片假名词条为单元(<word>),下面分别以<spell><prop><mean>各子元素对应片假名拼写、外来语拼写、中文解释各项内容:


该项目中,所使用的XML并不是使用JDOM生成,但要使用JDOM生成同样的XML结构也是很简单的,以下是简单实现代码片段:


由于要支持多国语,所以XML以UTF-8编码,这里需要说明的是,JDOM的XMLOutputer默认输出字符编码为UTF-8,如果要输出别种编码,可使用outputter.setEncoding()进行设定(请参考http://www.jdom.org/docs/faq.html)。在该FAQ里只说明了OUTPUT的编码情况,但是并没有说明JDOM在输入处理XML时对编码的要求,我开始使用时XML文档是以UCS-2编码的,但JDOM并不能正常处理,出现的错误:

org.jdom.JDOMException:Error in building:The name""is not legal for JDOM/XML elements:XML names cannot be null or empty
在改用了UTF-8编码后,JDOM对XML的处理就能正常进行,不知是否与JAVA内部的UNICODE编码于外来文件的UNICODE编码高低字节有关(对于处理一般的UNICODE文件,在输入时,需要把文件的高低字节互换才能使JAVA对其进行无误的处理),我暂时还没找到有关的资料。

使用JDOM实现电子辞典的词条查询功能
要实现的查询功能主要有两个,①按日文片假名模糊查询、②按外来语模糊查询:

(这里的模糊查询只展示简单的首字符相同&字符数相同的查找法则)这里仅挑取与JDOM有关的语句展示:


使用JDOM为XML文档增加子元素
为了要往XML资料文档里增加韩国方面将完成的韩文翻译存放空间,需要往XML文档里增加子元素-koreamean,增加子元素的实现与上面所介绍的生成XML文档差不多,仅借此简单举一个JDOM文档输出的例子,以及提一下本人在处理时所遇到的一些问题。

程序片段:


结果:

我首先使用的是用FileWrieter类输出,输出的效果是可以输出XML档,却出现不能把所有内容全部输出的情况,最后一部分的词条被遗漏,怀疑是使用FileWriter类输出文件长度受限制的原因。

于是使用FileOutputStream类进行重新输出,输出结果就完全正确了。

小结
JDOM具有丰富、强大的XML处理能力,本文仅用实例有限的展示了其中几项常用的功能,相信随着JDOM正式被接受成为Java规范要求,它的应用越来越广范,读者们会看到更多更系统的对JDOM的应用例示。

参考资料
JDOM ORG网站
JSRs:Java Specification Requests Detail-- JSR 102 JDOM 1.0
Easy Java/XML integration with JDOM--By Jason Hunter and Brett McLaughlin http://www.javaworld.com/javaworld/jw-05-2000/jw-0518-jdom.html
http://www.ibiblio.org/xml/slides/nypc/jdom/ 

时间: 2024-11-05 12:20:06

利用JDOM开发日文外来语网路电子辞典的相关文章

利用XML开发留言板简单的例子

xml XML是一种基于文本格式的元标记语言,它注重对数据结构和数据意义的描述,实现了数据内容和显示样式的分离(xml+xsl),而且是与平台无关的. 由于XML注重数据内容的描述,因而,对于数据的检索非常有意义,我们不会再象HTML那样,检索出与我们要求无关的信息. 另一方面,XML文件是数据的载体,利用XML作为数据库,不需要访问任何数据库系统,我们可以使用任意WEB技术来显示我们的数据,比如HTML,FlashMX 等. 由于世界各大计算机公司的积极参与,XML正日益成为基于互联网的数据格

Eclipse快速上手Hibernate--3. 利用XDoclet开发

    这篇文章是上两篇文章<Eclipse快速上手Hibernate--1. 入门实例>和<Eclipse快速上手Hibernate--2. 利用Hbm映射文件开发>的延续,主要说的是如何利用XDocletHbm映射文件产生Hbm映射文件及数据表.可以参考XDoclet文档中关于Hibernate的部分和夏昕编写的<Hibernate开发指南>.同样,这篇文章没有过多谈理论,只是给出了一个完整的实例加以说明.相关配置请参考上两篇文章.  1. 创建项目 ·  新建一个

利用Delphi开发网络数据库应用

Delphi 是具可视化界面的面向对象编程语言,它以其功能强大.简便易用等诸多特性,深受编程人员的欢迎.Delphi 中提供了数据库引擎 BDE(Borland Database Engine),并内含众多的数据库调用构件,为编程人员开发客户/服务器应用程序提供了方便.通常情况下,利用 Delphi 开发数据库应用程序,可以使用TTable.TDataSource.TDBEdit.TDBNavigator等构件.只要正确设置了构件的某些属性,再编写必要的程序代码对一些特定事件进行处理,就能够完成

利用.NET开发Interop应用

笔者曾经有若干篇文章介绍了在BDS 2006下开发Interop程序的一般步骤.有 兴趣的读者可以参考这些文章的汇总: http://www.go4pro.org/cate_list.asp?cate=20. 上面提到的开发方法,是 建立一个程序,然后创建Excel的应用对象(Application),再获得相应接口( 如Workbook,Worksheet,Cells)的引用并对其进行进一步的操作.调用方式是 通过由外(自己开发的程序)到内(Excel). 今天我要介绍一种新的利用.NET开发

Android利用WebView开发browser中flash无法播放的问题

使用系统自带浏览器可以成功播放flash,可是利用自己开发的就无法播放. 代码如下: browser = (WebView) findViewById(R.id.webview); browser.getSettings().setJavaScriptEnabled(true); browser.getSettings().setPluginsEnabled(true); browser.getSettings().setAllowFileAccess(true); browser.getSet

【高德API】如何利用MapKit开发全英文检索的iOS地图

原文:[高德API]如何利用MapKit开发全英文检索的iOS地图 制作全英文地图的展示并不困难,但是要制作全英文的数据检索列表,全英文的信息窗口,你就没办法了吧.告诉你,我有妙招!使用iOS自带的MapKit来展示全球英文底图,结合上高德API的中英文检索功能,就能打造POI数据最丰富,英文展示全方位的纯英文地图啦!看看截图,是不是浑然天成? ----------------------------------------------------------------------------

java-怎么利用Java开发验证码

问题描述 怎么利用Java开发验证码 想要用Java做出漂亮的验证码,该如何做????????????????????????????????? 解决方案 要源代码 还是具体怎样去做?

Java利用JDom解析和传递XML格式数据

java利用JDom来解析处理XML数据格式: 需要的包jdom-1.1.2.jar 1.将数据转换成XML格式的数据进行传递 Element rootList, firstList, secondItem, thirdItem; //根元素标签名 rootList = new Element("root"); //根元素标签内的属性名与值 rootList.setAttribute("project", pname); //生成Doc文档 Document Doc

gprs-如何利用GPRS开发板实现上网冲浪

问题描述 如何利用GPRS开发板实现上网冲浪 利用GPRS开发板作为本地连接,然后利用IE浏览器进行上网,如何实现 解决方案 你的开发板是否支持linux等操作系统,刷一个系统,然后安装代理服务器或者nat路由等软件.