- 相關(guān)推薦
javaXML文件處理的方法
Java的主要工作是通過編程語言來制作互聯(lián)網(wǎng)頁面、制作動(dòng)態(tài)效果以及網(wǎng)站等技術(shù),以下是小編為大家搜索整理的javaXML文件處理的方法,希望能給大家?guī)韼椭?更多精彩內(nèi)容請及時(shí)關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!
XML技術(shù)是隨著Java的發(fā)展而發(fā)展起來的。在XML出現(xiàn)之前對于簡單的數(shù)據(jù)格式通常是存儲在ini配置文件等文本文件中,復(fù)雜的格式則采用自定義的文件格式,因此對于每種文件格式都要有專門的解析程序。XML出現(xiàn)以后解決了這個(gè)問題,程序面對的是有固定格式的XML文件,只要通過標(biāo)準(zhǔn)API就可以進(jìn)行XML文件的處理。 XML文件在案例系統(tǒng)中應(yīng)用是很廣泛的,比如ClientConfig.xml、ServerConfig.xml文件就是使用XML文件來做配置文件的,元數(shù)據(jù)文件以及元數(shù)據(jù)加載器更是離不開XML。因此本章將系統(tǒng)講解一下XML文件的處理技術(shù)。
1.1XML處理技術(shù)比較 在Java領(lǐng)域XML文件的技術(shù)大致分為兩類:XMLAPI和OXMapping。XMLAPI是XML處理的基礎(chǔ),可選技術(shù)包括JDOM、Dom4j等;OXMapping是Object-XMLMapping的簡稱,這種技術(shù)隱藏了XML底層操作的細(xì)節(jié),可以將XML文件映射成一個(gè)JavaBean對象,也可以把一個(gè)JavaBean對象保存成一個(gè)XML文件,可選技術(shù)XStream、Digester、Castor等。XMLAPI和OXMapping的關(guān)系類似于JDBC和ORMaping的關(guān)系,OXMapping內(nèi)部實(shí)現(xiàn)使用XMLAPI來完成,兩種實(shí)現(xiàn)技術(shù)從不同的層面實(shí)現(xiàn)了XML的處理。
XMLAPI 此類XML處理技術(shù)中最流行的莫過于JDOM和Dom4j了,二者的使用方式非常相似。不過Dom4j的優(yōu)勢比JDOM更明顯一些: Dom4j大量的使用接口,這使得Dom4j比Dom4j更加靈活和具有可擴(kuò)展性; Dom4j的性能表現(xiàn)比JDOM好; Dom4j支持XPath等高級特性; 正是由于這些優(yōu)點(diǎn),很多開源項(xiàng)目都開始使用Dom4j做XML解析技術(shù),本書也將使用Dom4j做為XML處理的首選。
OXMapping 使用XMLAPI解析是略顯煩瑣的,受ORMapping技術(shù)的啟發(fā),人們發(fā)明了OXMapping技術(shù),使用OXMapping技術(shù),我們可以將XML文件映射成一個(gè)JavaBean對象,也可以把一個(gè)JavaBean對象保存成一個(gè)XML文件,這大大簡化了我們的開發(fā)工作量,使得開發(fā)人員能更多的關(guān)注應(yīng)用層面的東西。 開源世界中涌現(xiàn)出很多OXMapping框架,包括XStream、Digester、Castor等。XStream和Digester把映射的過程在代碼中完成,而Castor則需要寫一個(gè)和Hibernate中cfg.xml類似的映射配置文件。
與Digester比起來,XStream的主要優(yōu)點(diǎn)就是更加小巧,使用也更加方便,不過目前使用Digester是“開源名牌”Apache下的子項(xiàng)目,網(wǎng)上可以參考的資料也比XStream多,好在XStream比較簡潔,所以并不會(huì)對XStream造成太大影響。
【相關(guān)閱讀】
java不用DOS窗口的技巧
用過Java的人都知道,每次運(yùn)行Java程序都要打開一個(gè)可惡的Dos窗口,要是能像IE、Office等Windows程序一樣運(yùn)行該多好。也許有人會(huì)想到,JBuilder運(yùn)行時(shí)不就沒有Dos窗口嗎,但它是用C或C++寫的一個(gè)外殼程序,可惜我不會(huì)其它語言,那該怎么辦?其實(shí)只要你善于觀察、研究,有很多辦法可以解決的。這里給你3個(gè)解決方法,讓你的程序從此告別Dos窗口!
(一) 巧用JBuilder的外殼:
仔細(xì)觀察JBuilder安裝目錄下的bin目錄(注意,這里以JBuilder8為例,低版本的JBuilder會(huì)稍微有些不同),你會(huì)發(fā)現(xiàn)jbuilder.config、JBuilder.exe、JBuilderW.exe及jdk.config 4個(gè)文件,用記事本打開jdk.config文件,將第15行javapath ../jdk1.4/jre/bin/client/jvm.dll 改為你機(jī)器上jdk1.4的相應(yīng)路徑,同樣要注意是jdk1.4,因?yàn)橐郧鞍姹镜?jdk沒有bin/client/jvm.dll文件,你可以使用絕對路徑,如將其改為javapath D:/JBuilder8/jdk1.4/jre/bin/client/jvm.dll,然后再將21行addpath ../jdk1.4/lib/tools.jar改為你機(jī)器上相應(yīng)路徑,如addpath D:/JBuilder8/jdk1.4/lib/tools.jar,其它不需要修改,存盤后退出。再用記事本打開jbuilder.config文件,在addpath后加一行,將你的classpath加進(jìn)去,如addbootpath .(我這里將類文件和上面4個(gè)文件放到了同一個(gè)目錄下),然后將最好一行的mainclass com.borland.jbuilder.JBuilder改為你的主程序,如mainclass com.bhr.ioat.Test,保存退出。然后雙擊JBuilderW.exe試試看,是不是沒有Dos窗口了。
注意,如果你要修改上面文件的名字時(shí),一定要保證jbuilder.config、JBuilder.exe、JBuilderW.exe 3個(gè)文件的匹配,如改為Test.config、Test.exe、TestW.exe,任何的不匹配都可能運(yùn)行不了你的程序。其實(shí)jbuilder.config文件主要就是classpath的設(shè)置,你可以根據(jù)需要?jiǎng)h除里面好多內(nèi)容的,留著你慢慢研究吧。
(二) 將你的程序打包成Jar文件:
首先要安裝jdk,注意一定是那種exe的安裝文件,雖然你可以從別的機(jī)器上copy一個(gè)安裝過的jdk使用,但是這里不行,為什么?稍后再告訴你。裝完Jdk以后,到安裝目錄的demo\jfc\Notepad下,雙擊Notepad.jar,怎么樣,是不是沒有Dos窗口了,秘密在哪里,有兩點(diǎn)。(1)jdk在安裝過程中會(huì)將jar文件的打開方式關(guān)聯(lián)到j(luò)avaw.exe文件。什么是javaw.exe?其實(shí)和java.exe一樣,只不過運(yùn)行程序時(shí)沒有dos窗口。(2)就是那個(gè)jar文件了,如果你不會(huì)生成jar,還是先去查查別的資料吧。用winzip解開Notepad.jar,到META-INF目錄下,打開MANIFEST.MF文件,看到了吧,里面有一句Main-Class: Notepad,換成你自己的類就可以了。需要注意的是Main-Class:后面有一個(gè)空格,如果少了的話,應(yīng)該就起不來你的程序了。
(三) 通過Windows的start命令:
這個(gè)就簡單多了,寫一個(gè)啟動(dòng)你程序的批處理文件,一定要用javaw命令來運(yùn)行,然后在javaw命令前加上start命令就可以了,如: set classpath=.%classpath%; set path= D:\JBuilder8\jdk1.4\bin;%path%; start javaw com.bhr.ioat.Test 不過這樣有個(gè)問題,就是dos窗口會(huì)閃一下,然后再關(guān)掉,還算可以湊合。 上面只是提了3個(gè)方法,其中通過第一種方法的介紹,你可以舉一反三,如用Intellj Idea的外殼也可以實(shí)現(xiàn)。雖然Dos窗口是沒了,不過程序出的異常也同樣看不到了,這里有幾個(gè)方法可以彌補(bǔ)這個(gè)問題,(1)將你的輸出重定向到文件;(2)程序中使用log4j做log(一定要catch住所有異常才可以)。
【javaXML文件處理的方法】相關(guān)文章:
Linux中生成Core Dump系統(tǒng)異常信息記錄文件處理方法介紹08-17
Linux系統(tǒng)的文件設(shè)置方法05-24
PHP遍歷目錄文件常用方法09-23
恢復(fù)電腦硬盤文件的方法07-08
如何把Word文件變成JPG圖片的方法10-14
java播放聲音文件的方法08-18
PHP下載保存文件保存到本地的方法08-26
PHP中讀取大文件實(shí)現(xiàn)方法詳解09-23