Я провел некоторое исследование, посмотрел на таблицу внизу (1), и я пытаюсь выяснить, какой API я должен использовать.Какой Java XML API использовать в моем приложении - StAX или DOM?
Позволь мне представить проблему моего приложение в движении, чтобы решить:
Моего приложения слушает некоторые события наблюдателей обожженных из всех мест (например, событие из КДИ) в некотором классе наблюдателя. В этом классе существуют методы наблюдения этих событий.
Мне нужно создать XML-файл «на лету», поскольку эти события наблюдаются. Более конкретно, когда я наблюдаю событие «start», мне нужно создать этот xml.
<start></start>
После этого, когда я наблюдаю другое событие, как «установлен» (не имеет значения, как это называется на самом деле), мне нужно иметь такую структуру:
<start><installed></installed><start>
Everytime я наблюдаю какое-то событие , Мне нужно иметь возможность записать это представление XML во внешний файл. Подводя итог, кажется, что я не могу использовать SAX, потому что SAX просто анализирует XML-документы, но мне нужно их написать или построить. Затем я собираюсь использовать StAX или DOM, но StAX «только вперед», который я не совсем понимаю, что он означает, но когда я беру StAX API, он ведет себя так (2), и когда он «вперед», я «принудительно» вручную запускать и заканчивать элементы, но это не применимо в моем случае. Я не знаю, когда я собираюсь закончить создание документа, мне просто нужно иметь действительный xml каждый раз, чтобы написать его.
Однако существует такой способ (3), который гласит, что когда я его называю, он автоматически закрывает все элементы. Так, например, когда у меня есть это:
<a>
<b></b>
<c>
<d>
</d>
и я называю writeEndDocument(), это означает, что, что он автоматически закрывает «с» и «а»?
(1) http://docs.oracle.com/cd/E17802_01/webservices/webservices/docs/1.6/tutorial/doc/SJSXP2.html
(2) http://docs.oracle.com/javase/tutorial/jaxp/stax/example.html#bnbgx
(3) http://docs.oracle.com/javase/6/docs/api/javax/xml/stream/XMLStreamWriter.html#writeEndDocument()
Рассмотрите VTD-XML ... есть статья на эту тему http: //www.javaworld.com/article/2071745/soa/simplify-xml-processing-with-vtd-xml.html –