深圳java培訓(xùn):構(gòu)建xml文檔--【千鋒】
為企業(yè)提供成都網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)站優(yōu)化、成都全網(wǎng)營(yíng)銷(xiāo)推廣、競(jìng)價(jià)托管、品牌運(yùn)營(yíng)等營(yíng)銷(xiāo)獲客服務(wù)。創(chuàng)新互聯(lián)擁有網(wǎng)絡(luò)營(yíng)銷(xiāo)運(yùn)營(yíng)團(tuán)隊(duì),以豐富的互聯(lián)網(wǎng)營(yíng)銷(xiāo)經(jīng)驗(yàn)助力企業(yè)精準(zhǔn)獲客,真正落地解決中小企業(yè)營(yíng)銷(xiāo)獲客難題,做到“讓獲客更簡(jiǎn)單”。自創(chuàng)立至今,成功用技術(shù)實(shí)力解決了企業(yè)“網(wǎng)站建設(shè)、網(wǎng)絡(luò)品牌塑造、網(wǎng)絡(luò)營(yíng)銷(xiāo)”三大難題,同時(shí)降低了營(yíng)銷(xiāo)成本,提高了有效客戶轉(zhuǎn)化率,獲得了眾多企業(yè)客戶的高度認(rèn)可!我需要從Java對(duì)象層次結(jié)構(gòu)構(gòu)建一個(gè)XML文檔。Java類(lèi)和XML格式都是固定的。所以我不能使用像 XStream 這樣的XML序列化器:它將XML格式基于Java類(lèi)。同樣,像 JAXB 這樣的Java XML綁定技術(shù)也不行,因?yàn)樗鼜腦ML模式創(chuàng)建Java類(lèi)[ed:但見(jiàn)下文]。我需要一個(gè)手動(dòng)方法。
低技術(shù)的StringBuilder路由會(huì)導(dǎo)致易碎和錯(cuò)誤的代碼(至少對(duì)我來(lái)說(shuō)!)。
像 JAXP 或 JDOM 這樣的API可以產(chǎn)生更健壯的代碼,但這些代碼非常冗長(zhǎng)。
Groovy 有一個(gè)優(yōu)雅的 MarkupBuilder :
def writer = new StringWriter ()
def xml = new MarkupBuilder ( writer )
xml . records () {
car ( name : 'HSV Maloo' , make : 'Holden' , year : 2006 ) {
country ( 'Australia' )
record ( type : 'speed' , 'Production Pickup Truck with speed of 271kph' )
}
car ( name : 'P50' , make : 'Peel' , year : 1962 ) {
country ( 'Isle of Man' )
record ( type : 'size' , 'Smallest Street-Legal Car at 99cm wide and 59 kg' )
}}
其他語(yǔ)言(如 Ruby )有更好的語(yǔ)言,盡管我想留在純Java中。似乎有一些Java的新的XML構(gòu)建器,例如 practicalxml 和James Murty的 xmlbuilder 。
在Java中構(gòu)建XML文檔的更優(yōu)雅的方法是什么?
概要:
Jon Doe建議 dom4j 和 jdom 。
CurtainDog推薦使用JAXB,而jherico則告訴我這是一個(gè)有針對(duì)性的建議:然后你可以使用Dozer來(lái)映射我當(dāng)前的JavaBeans和JAXB JavaBeans。
thaggie建議 JIBX 并同意CurtainDog和jherico綁定技術(shù)實(shí)際上是實(shí)用的。
StaxMan推薦 StaxMate 。
在我看過(guò)的東西中,practicalxml和James Murty的xmlbuilder似乎是最簡(jiǎn)潔的構(gòu)建器,雖然比較新穎。像JAXB這樣的綁定技術(shù)似乎提供了額外的安全/自動(dòng)化。在主流選擇中, dom4j 看起來(lái)很體面,但仍然有點(diǎn)冗長(zhǎng)。它提供了一個(gè)“流暢的接口”(mutators返回對(duì)變異對(duì)象的引用,以便它們可以鏈接在一起),我喜歡它:
public Document createDocument () {
Document document = DocumentHelper . createDocument ();
Element root = document . addElement ( "root" );
Element author2 = root . addElement ( "author" )
. addAttribute ( "name" , "Toby" )
. addAttribute ( "location" , "Germany" )
. addText ( "Tobias Rademacher" );
Element author1 = root . addElement ( "author" )
. addAttribute ( "name" , "James" )
. addAttribute ( "location" , "UK" )
. addText ( "James Strachan" );
return document ;}
為了簡(jiǎn)明起見(jiàn),你可以在這個(gè)API上封裝一個(gè)精簡(jiǎn)的外觀,為這些方法中的一些提供簡(jiǎn)潔的同義詞(例如,attr()而不是addAttribute())。
本文標(biāo)題:深圳java培訓(xùn):構(gòu)建xml文檔--【千鋒】-創(chuàng)新互聯(lián)
本文URL:http://muchs.cn/article28/djipcp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷(xiāo)推廣、動(dòng)態(tài)網(wǎng)站、面包屑導(dǎo)航、網(wǎng)站導(dǎo)航、移動(dòng)網(wǎng)站建設(shè)、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容