How to transform huge xml files in java?

Posted by fx42 on Stack Overflow See other posts from Stack Overflow or by fx42
Published on 2010-05-05T13:46:10Z Indexed on 2010/05/05 13:58 UTC
Read the original article Hit count: 183

Filed under:
|
|

As the title says it, I have a huge xml file (GBs)

<root>  
<keep>  
   <stuff>  ...  </stuff>  
   <morestuff> ... </morestuff>  
</keep>  
<discard>  
   <stuff>  ...  </stuff>  
   <morestuff> ... </morestuff>
</discard>  
</root>  

and I'd like to transform it into a much smaller one which retains only a few of the elements.
My parser should do the following:
1. Parse through the file until a relevant element starts.
2. Copy the whole relevant element (with children) to the output file. go to 1.

step 1 is easy with SAX and impossible for DOM-parsers.
step 2 is annoying with SAX, but easy with the DOM-Parser or XSLT.

so what? - is there a neat way to combine SAX and DOM-Parser to do the task?

© Stack Overflow or respective owner

Related posts about java

Related posts about Xml