深圳java培訓:構建xml文件--【千鋒】
深圳java培訓:構建xml文件--【千鋒】
我需要從Java物件層次結構構建一個XML文件。Java類和XML格式都是固定的。所以我不能使用像 這樣的XML序列化器:它將XML格式基於Java類。同樣,像 這樣的Java XML繫結技術也不行,因為它從XML模式建立Java類[ed:但見下文]。我需要一個手動方法。
低技術的StringBuilder路由會導致易碎和錯誤的程式碼(至少對我來說!)。
像 JAXP 或 這樣的API可以產生更健壯的程式碼,但這些程式碼非常冗長。
有一個優雅的 :
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' )
}}
其他語言(如 )有更好的語言,儘管我想留在純Java中。似乎有一些Java的新的XML構建器,例如 和James Murty的 。
在Java中構建XML文件的更優雅的方法是什麼?
概要:
Jon Doe建議 和 。
CurtainDog推薦使用JAXB,而jherico則告訴我這是一個有針對性的建議:然後你可以使用Dozer來對映我當前的JavaBeans和JAXB JavaBeans。
thaggie建議 並同意CurtainDog和jherico繫結技術實際上是實用的。
StaxMan推薦 。
在我看過的東西中,practicalxml和James Murty的xmlbuilder似乎是最簡潔的構建器,雖然比較新穎。像JAXB這樣的繫結技術似乎提供了額外的安全/自動化。在主流選擇中, 看起來很體面,但仍然有點冗長。它提供了一個“流暢的介面”(mutators返回對變異物件的引用,以便它們可以連結在一起),我喜歡它:
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 ;}
為了簡明起見,你可以在這個API上封裝一個精簡的外觀,為這些方法中的一些提供簡潔的同義詞(例如,attr()而不是addAttribute())。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69947096/viewspace-2663887/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 深圳Java培訓學習:MyBatis Plus 介紹--【千鋒】JavaMyBatis
- 深圳軟體測試培訓學習:Java Random介紹--【千鋒】Javarandom
- 深圳Java培訓:MyBatis為什麼在國內相當流行?【千鋒】JavaMyBatis
- 深圳軟體測試培訓學習:Java連線MySQL--【千鋒】JavaMySql
- 深圳雲端計算培訓學習:構建企業級WIKI及工單系統 --【千鋒】
- 深圳雲端計算培訓學習:Apache 訪問控制--【千鋒】Apache
- 深圳Web前端培訓學習:js中的模組化--【千鋒】Web前端JS
- 參加千鋒長沙Java培訓機構怎麼樣?Java
- 深圳Python培訓學習:Python3 簡介–[千鋒]Python
- 千鋒教育長沙Java培訓怎麼樣?Java
- 深圳雲端計算培訓學習:部署網校系統 edusoho--【千鋒】
- 千鋒長沙Java培訓:鴻蒙系統入門講解Java鴻蒙
- 深圳Web前端學習:學 Web 前端開發,培訓還是自學靠譜?-千鋒Web前端
- 深圳雲端計算培訓學習:雲端計算正在殺死運維嗎?–【千鋒】運維
- 深圳雲端計算培訓學習:女生做雲端計算運維容易嗎?–【千鋒】運維
- 千鋒長沙Java培訓:Spring 相關知識講解JavaSpring
- 深圳軟體測試培訓學習:Android常用自動化測試工具【千鋒】Android
- 運維工程師怎樣才能更好的進階?-千鋒深圳雲端計算培訓運維工程師
- 深圳Web前端培訓學習:5G對Web前端發展的影響--【千鋒】Web前端
- 長沙Java培訓:千鋒一一哥spring security系列教程總結JavaSpring
- 大資料和雲端計算的關係是什麼?-千鋒深圳雲端計算培訓大資料
- 千鋒長沙前端培訓:Vue相關面試題前端Vue面試題
- Java培訓:長沙Java培訓機構排名Java
- 深圳Java學習:小白速懂Https協議-千鋒JavaHTTP協議
- 長沙Java培訓班分享:千鋒索爾《阿里RPC框架Dubbo原始碼級講解》Java阿里RPC框架原始碼
- Oracle培訓之旅-深圳大亞灣Oracle
- java培訓分享:java培訓架構師學習線路圖Java架構
- 深圳大資料學習:泛型--【千鋒】大資料泛型
- 千鋒長沙前端培訓:Vue的雙向資料繫結原理前端Vue
- 千鋒長沙前端培訓:VUE-router導航守衛講解前端Vue
- Oracle培訓-深圳邊檢總站Oracle
- 深圳軟體測試培訓:java中陣列的操作Java陣列
- 深圳Java培訓學習:Java8.0新特性之Lambda表示式Java
- 深圳Java學習:MyBatis為什麼在國內相當流行?-千鋒JavaMyBatis
- 上JAVA培訓機構有用不?Java
- 深圳Web前端學習:如何給網頁劃分合適的結構--【千鋒】Web前端網頁
- 深圳Java培訓:Java中的float在記憶體中的儲存Java記憶體
- 長沙Java培訓機構哪家好?怎麼才能避免Java培訓的坑?Java