91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

深圳java培訓:構建xml文檔--【千鋒】

發布時間:2020-08-06 17:19:04 來源:ITPUB博客 閱讀:118 作者:andy888168 欄目:編程語言

深圳java培訓:構建xml文檔--【千鋒】

我需要從Java對象層次結構構建一個XML文檔。Java類和XML格式都是固定的。所以我不能使用像 XStream 這樣的XML序列化器:它將XML格式基于Java類。同樣,像 JAXB 這樣的Java XML綁定技術也不行,因為它從XML模式創建Java類[ed:但見下文]。我需要一個手動方法。

低技術的StringBuilder路由會導致易碎和錯誤的代碼(至少對我來說!)。

JAXP JDOM 這樣的API可以產生更健壯的代碼,但這些代碼非常冗長。

Groovy 有一個優雅的 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' )

   }}

其他語言(如 Ruby )有更好的語言,盡管我想留在純Java中。似乎有一些Java的新的XML構建器,例如 practicalxml James Murty的 xmlbuilder

Java中構建XML文檔的更優雅的方法是什么?

概要:

Jon Doe建議 dom4j jdom

CurtainDog推薦使用JAXB,而jherico則告訴我這是一個有針對性的建議:然后你可以使用Dozer來映射我當前的JavaBeans和JAXB JavaBeans。

thaggie建議 JIBX 并同意CurtainDog和jherico綁定技術實際上是實用的。

StaxMan推薦 StaxMate

在我看過的東西中,practicalxml和James Murty的xmlbuilder似乎是最簡潔的構建器,雖然比較新穎。像JAXB這樣的綁定技術似乎提供了額外的安全/自動化。在主流選擇中, dom4j 看起來很體面,但仍然有點冗長。它提供了一個“流暢的接口”(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())。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

马山县| 颍上县| 和政县| 定陶县| 鄢陵县| 马山县| 九江市| 山西省| 长顺县| 金寨县| 永兴县| 屏南县| 新津县| 和林格尔县| 靖宇县| 开远市| 锡林郭勒盟| 牟定县| 离岛区| 郎溪县| 宜都市| 台山市| 瓮安县| 彭阳县| 宣武区| 胶南市| 平顶山市| 阳谷县| 曲麻莱县| 日喀则市| 惠水县| 定南县| 阿合奇县| 旬邑县| 宝丰县| 杭州市| 边坝县| 佳木斯市| 顺平县| 尼玛县| 诏安县|