2009-11-23 53 views
0

我正在爲Flex中的XML文檔構建自定義結構化編輯器。我需要的是一種在XMLList上使用可編輯的數據網格或彈出窗體進行列表操作的方式(UI方式,哪個不重要,請不要關注)。這樣做的好習慣是什麼?在Adobe Flex中編輯XML文檔?

下面是一個例子結構,我可能要執行的操作:

<itemList> 
    <item id="1"/> 
    <item id="2"/> 
</itemList> 

我可能想:

  • 在列表的末尾添加一個新的項目。
  • 刪除現有項目
  • 編輯項目以便能夠取消編輯(大概這意味着製作項目的副本,編輯項目並用編輯的副本替換其源代碼)?
  • 重新排序的項目

我應該如何去這樣做呢?

回答

1

我們只是在我工作的地方構建了一個相當複雜的XML編輯器,而且我的第一個建議是,如果您可以避免這種情況,不要直接使用XMLListCollection,而是儘量使用FLEX創建的方法。 Flex的XMLListCollection是XMLListAdapter的一個容器,儘管它確實有效,但如果使用XMLList的父節點並使用本機XML函數,則會更好。如果你試圖重複他們的努力,這是漫長的和噩夢。

這就是說: XMLListCollection是你的朋友,但如果你有很多的數據綁定,請確保你有多個圖層。我們最初總是使用來自XML文檔根目錄的ex4搜索,這耗費了我們大量的時間和精力。我們意識到我們可以將它分成三個子列表,每個編輯都快得多。

至於實際的用戶界面,好吧,有很多方法可以做到這一點,這取決於你的XML的整體結構。

如果您有多個的項目列表,你可以想一些在此舉例代碼一起使用樹組件:http://livedocs.adobe.com/flex/3/html/help.html?content=about_dataproviders_6.html

在另一方面,如果只有一個itemList中,那麼我將有一個簡單的名單。這將允許您拖動項目並重新排序。如果你使用了labelFunction,你可以讓它返回item的@id。你可以添加一個TextField和一個提交按鈕來添加節點。也許是一個額外的刪除按鈕,但它不會那麼難。

取消編輯會非常容易 - 只需等到「提交」已被命中,然後再實際將更改提交到XML。

0

是的,因爲flex builder是一個基於eclipse的IDE使用Web Tools Platform。我沒有將它安裝在直接的flex構建器上,但是您可以下載Eclipse J2EE版本並且它包含WTP。然後,只需將flex builder安裝爲插件即可。我認爲你應該能夠找到J2EE IDE的Ganymede版本。但是,如果您不能,請考慮在伽利略獲得Flex的解決方法,並且您很好!

1

我個人將XML結構抽象爲對象圖並在事實之後將對象序列化爲XML。然後,在編輯過程中(不包括實時序列化顯示或其他)處理XML,並且您可以輕鬆使用來自處理對象的操作,而不必解析/操作XML節點。