2013-06-27 74 views
2

我一直在閱讀使用SAX,STAX和dom的xml閱讀和書寫。我的問題是,即使閱讀的優點和缺點後,我現在還不能確定哪個是最好的,我的目的 - 雖然DOM確實出現了最簡單的,我會用很少的內存,以便一個非常薄弱的​​服務器上運行此程序如果可能的話,我非常希望讓程序更高效。對服務器的高需求也將推動對效率的需求。什麼xml解析器適合這些要求?

這就是我需要:

  1. 通過XML文檔從中拉出不同的數據只需閱讀。在這一點上,我決定SAX解析器將會是我所需要的,顯然它是最快的?

  2. 不過,我也需要能夠生成XML文檔。在這一點上,我認爲很好 - STAX是我應該使用的,因爲它似乎具有與SAX類似的功能,但允許生成xml代碼。

  3. 最靠譜的是,我需要能夠通過現有的XML文檔閱讀和編輯的特定部分,即在開始和結束標記之間的字符。 DOM看起來是最好的,但是每個人都說DOM使用了很多資源,而且速度很慢。那麼這對於Stax來說可能嗎?

我想使用DOM,但我關心的是內存和處理器的使用等

我可以問一個現實世界的例子相比,斯塔克斯的時候會是多少更多的資源使用? xml文件不可能很大,我只需要進行一些讀取和寫入。也就是說,該程序是一款遊戲,開始時我需要在玩家身上加載信息,並最終找到玩家的xml信息,並儘可能快地根據玩家的表現進行修正。

非常感謝任何答案/建議

+0

如果XML文件不是很大的不效率關心自己修改XML。 – Patashu

+0

@Patashu對不起 - 不是最好的q:但什麼定義大的XML文件?我沒有經驗的XML文件,所以不知道他們可以得到多大。謝謝 –

+0

大是相對的,例如大到足夠大,以至於如果沒有明顯的放緩,就無法解析它。以最簡單的方式實現它,然後,如果它變得太慢,那麼你考慮如何加速它(以科學的方式,分析等) – Patashu

回答

1

使用SAX 至於要修改XML這是不會幫你

使用DOM 因爲你在乎內存(效率),這是不上班

使用StAX 這是什麼幫助你的顧慮。你也指出了它。如何使用StAX討論here