在我正在開發的java應用程序中,需要採用現有的XML,然後對該xml進行更改並給出原始以及新的xml,作爲輸出。java處理xml並修改它以創建新的xml
你推薦哪個解析器,這樣它使用最少的內存?在哪裏我可以做到以下幾點 - (1)輕鬆取出XML的一部分,並將其插入到同一個XML中的另一個地方? (b)改變xml的一部分的一些屬性。
在我正在開發的java應用程序中,需要採用現有的XML,然後對該xml進行更改並給出原始以及新的xml,作爲輸出。java處理xml並修改它以創建新的xml
你推薦哪個解析器,這樣它使用最少的內存?在哪裏我可以做到以下幾點 - (1)輕鬆取出XML的一部分,並將其插入到同一個XML中的另一個地方? (b)改變xml的一部分的一些屬性。
如果文檔很大,可以看一下SAX,否則就像例如dom4j那樣使用DOM解析器。
使用任何DOM解析器,您可以複製節點並將其附加到文檔樹中的其他位置。
例如,使用dom4j,您可以使用Element.createCopy
複製元素,並將其添加到其他位置。
但是,正如評論上文所述,如果您可以避免使用Java,那麼對這樣的任務使用XSLT – Alex
下面是一個巨大的Java解析器列表供您選擇。他們中的大多數人都有能力做你需要的東西 - XML分析,選擇/過濾/複製/移動節點,修改屬性,XML文件讀/寫功能等等。每種方法都有其自身的優勢 - 主要選擇標準是速度和性能:
JDOM
XMLBeans
Xerces
Apache Betwixt
XStream
StAX
JAXB
XP Parser
kXML
JiBX: Binding XML to Java Code
woodstox
VTD-XML 1.5
Zeus
Skaringa
Lycia
Piccolo XML Parser
NanoXML
NekoPull
XOM
dom4j
Jakarta Commons Digester
JOX
KBML
X2JB
Staxmate
Ref1至:http://java-source.net/open-source/xml-parsers
至Ref2:Best XML parser for Java
我正在尋找一個最少使用內存的解析器 - 處理時間並不是一個重要因素,但內存使用率是最重要的 - 你對我的場景建議哪些?謝謝... – Arvind
您是否考慮過使用apache xalan進行XSLT處理? – Miquel
對於您所描述的內容,XSLT是_intended_。 Java是一種通用語言。XSLT將會更加簡單,甚至可以從Java調用XSL。 –