<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    邋遢居

    我的Java天堂

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      61 Posts :: 2 Stories :: 90 Comments :: 0 Trackbacks

    在開發(fā)過程中經(jīng)常需要把一些配置文件進行合并。一般情況下這些配置文件都是使用xml格式進行存儲的。對配置文件進行合并,說到底就變成了對xml的合并。

    有了這樣的需求就的好好想想有那些方案了。稍微的想了想(肯定不完整了)合并xml可行方案:

    1、使用dom4jsaxxml解析工具對需要合并的xml代碼進行分析、比較并合并。

    <<Java中合并XML文檔的設(shè)計與實現(xiàn)>>(http://fanqiang.chinaunix.net/program/html/2005-06-16/3313.shtml)一文就是采用的這種方式實現(xiàn)了。

    2、采用xsltxml進行合并。

    在這兩個技術(shù)中,我是重點的看了一下第二種。原因是以前對xslt有一點了解,而且不用我自己去控制遞規(guī)循環(huán)這樣比較容易出錯的環(huán)節(jié)。

    還有就是使用 xslt 有很多很不錯的調(diào)試環(huán)境可以使用如 xmlspy,stylus studio 等。可以直接看到調(diào)試過程。最后有幸在網(wǎng)上看到了一個老外寫的一個用于合并 xml xslt http://www2.informatik.hu-berlin.de/~obecker/XSLT/#merge )。用 xmlspy 跑了一下,當時感覺就是一個“爽”了得。狂喜過后,就開始思考想想如何用 java 實現(xiàn)這個 xslt 的轉(zhuǎn)換過程了。其實這也是一個很簡單的過程。使用 dom4j 用下面的代碼就可以實現(xiàn):

    public ?Document?styleDocument(

    Document?document,

    String?stylesheet

    )?
    throws ?Exception?{

    // ?load?the?transformer?using?JAXP

    TransformerFactory?factory?
    = ?TransformerFactory.newInstance();

    Transformer?transformer?
    = ?factory.newTransformer(

    new ?StreamSource(?stylesheet?)

    );

    // ?now?lets?style?the?given?document

    DocumentSource?source?
    = ? new ?DocumentSource(?document?);

    DocumentResult?result?
    = ? new ?DocumentResult();

    transformer.transform(?source,?result?);

    // ?return?the?transformed?document

    Document?transformedDoc?
    = ?result.getDocument();

    return ?transformedDoc;

    }

    就用這樣的代碼一跑,他居然,居然沒有得到我想要的結(jié)果。郁悶啊!直接想去找塊豆腐,一頭撞死算了。但是在死前還是要把這個問題解決掉。要不死也不甘心。簡單的分析一下,在xmlspy中可以使用,說明xslt肯定沒有問題。那有問題的肯定是xslt 處理器有問題。你有問題我換不就的了嗎。最后我換成了如下的情況:

    < dependency >
    ??????
    < groupId > dom4j </ groupId >
    ??????
    < artifactId > dom4j </ artifactId >
    ??????
    < version > 1.6.1 </ version >
    ????
    </ dependency >
    ????
    < dependency >
    ??????
    < groupId > net.sf.saxon </ groupId >
    ??????
    < artifactId > saxon </ artifactId >
    ??????
    < version > 8.5.1 </ version >
    ????
    </ dependency >
    ??
    </ dependencies >

    重新跑了一下,ok了。沒有問題了。

    下面的任務(wù)就是對這個功能進行簡單的封裝一下。然需要xml合并的地方能夠很容易的調(diào)用他。



    posted on 2006-08-23 17:21 Jet Geng 閱讀(2265) 評論(0)  編輯  收藏 所屬分類: 生活點滴
    主站蜘蛛池模板: 99re视频精品全部免费| 91视频免费观看高清观看完整| 中文字幕亚洲免费无线观看日本 | 亚洲一卡2卡三卡4卡无卡下载| 8x8x华人永久免费视频| 亚洲电影一区二区| 十八禁视频在线观看免费无码无遮挡骂过 | 亚洲精品第一综合99久久| 91在线视频免费91| 亚洲情A成黄在线观看动漫软件| 亚洲高清免费在线观看| 亚洲另类春色国产精品| 在线观看av永久免费| 亚洲中文字幕精品久久| 免费激情视频网站| 曰批免费视频播放在线看片二| 亚洲精品无码久久毛片| 国产午夜精品久久久久免费视 | 一级女人18毛片免费| 亚洲日韩中文字幕一区| 四虎免费影院4hu永久免费| 日本一区二区三区在线视频观看免费 | 成人免费777777| 免费很黄无遮挡的视频毛片| 国外亚洲成AV人片在线观看| 99国产精品视频免费观看| 亚洲中文字幕无码亚洲成A人片| 亚洲AV无码一区二区三区国产| 三上悠亚在线观看免费| 亚洲精品白色在线发布| 免费看大黄高清网站视频在线| 一级毛片免费不卡| 久久精品国产亚洲AV大全| 女人让男人免费桶爽30分钟| 一级一看免费完整版毛片| 老司机亚洲精品影院无码| 永久黄网站色视频免费直播| 91免费国产视频| 亚洲欧美日韩中文高清www777| 亚洲熟妇少妇任你躁在线观看无码| 久久久久国产精品免费网站|