2012-06-11 3 views
0

В приложении java, над которым я работаю, необходимо взять существующий XML, затем внести изменения в этот xml и предоставить оригинал, а также новый xml, как выход.java-processing xml и его модификация для создания нового xml

Какой парсер вы рекомендуете, чтобы он использовал наименьшую память? Где я могу сделать следующее:

(a) легко взять одну порцию xml и вставить ее в другое место в том же XML?

(b) изменить некоторые атрибуты в разделе xml.

+3

Вы рассматривали обработку XSLT с помощью apache xalan? – Miquel

+0

XSLT _intended_ за то, что вы описываете. Java - это язык общего назначения.XSLT будет намного проще, и вы даже можете вызвать XSL с Java. –

ответ

1

Если документ огромен, вы можете взглянуть на SAX, иначе просто используйте парсер DOM, например, dom4j.

С любым парсером DOM вы можете скопировать узел и прикрепить его в другом месте в дереве документов.

Для примера с помощью dom4j вы можете использовать Element.createCopy, чтобы скопировать элемент и добавить его в другое место.

+0

Но, как указано в верхних комментариях, если вы можете избежать Java, тогда используйте XSLT для такой задачи. – Alex

0

Вот огромный список Java Parsers для вас на выбор. Большинство из них имеют возможность делать то, что вам нужно - 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

+0

Я ищу парсер, который использует наименьшее время обработки памяти, не столько фактор, а использование памяти - какие из них вы предлагаете для моего сценария? Благодаря... – Arvind

Смежные вопросы