簡體   English   中英

使用Java中的Jdom進行XML解析和編輯

[英]XML Parsing and editing with Jdom in Java

我在這個問題上掙扎了一個星期。 我嘗試用Java編寫一個可以編輯電子書的程序。 我選擇的電子書格式是小說,它的數據包含在xml之類的文件中。 我可以打開該文件並在JTextComponent中生成一個sourceview。 我的編輯器預覽和源視圖中有兩個切換按鈕。 他們使用相同的JTextComponent進行顯示。 當用戶單擊sourceview時,它將顯示所選的文件源(純xml)。 我通過解析需要顯示的數據從此源生成預覽。如果我在sourceview中更改了某些內容,它也將顯示在預覽中,因為它是從那里生成的,我的問題是如何使它向后顯示。 因此,如果我在預覽中更改了某些內容,它也會在源文件中進行更改。

很難將其視為特定於JDOM的問題。 底層表示幾乎可以是任何東西。 通常,預覽只是這樣:不能直接編輯的最終結果視圖。 如果希望既可以編輯源代碼又可以通過所見即所得的視圖進行編輯,則需要研究model-view-controller模式。

基礎XML將是您的模型。 XML編輯器視圖和WYSIWYG視圖(您當前的預覽)都將是視圖AND控制器。 當前,這僅適用於XML編輯器,而預覽僅是視圖。

從預覽更改基礎XML聽起來很困難,除非可以以某種方式標識每個節點(例如,通過id屬性)。 您需要在預覽中添加一些其他基礎數據,才能從另一個方向進行此耦合。

我不確定JDOM文檔是否是適合您的最佳模型。 也許您最好使用JAXB之類的東西來使用簡單的JavaBeans來表示模型,然后將其編組為XML或從XML解組。 這樣就得到:

                    model: JavaBeans with JAXB annotations
                      ^
                      |
    (directly) +--------------------------------------+ (through JAXB)
               |                                      |
WYSIWYG editor: view + controller             XML editor: view + controller

但這只是我的第一印象。 研究現有的編輯器,以找出執行此操作的好方法。 也許檢查IDE插件/模塊可能會很有趣,因為IDE通常允許多種類型的編輯器更改基礎數據模型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM