2016-12-27 6 views
0

私は多くのStackoverflowのページとWebを見て、自分の要件に合ったパーサを決定しました。 Javaでネストされた大きなxmlファイルを読み込む必要があるため、DOMパーサーは適切ではありません。私のXMLは以下のようになります(スニペット) -入れ子になって長いxmlを読むためのJavaパーサ

<products> 
     <product> 
      <productCode></productCode> 
      <Code>3002191</Code> 
      <anotherCode></anotherCode> 
      <entityName>entityName value</entityName> 
      <entityName2>entityName value</entityName2> 
      <Type>value</Type> 
      <List>1</List> 
      <SecondCode>124</SecondCode> 
      <docInfo> 
       <name>value1</name> 
       <docName>value</docName> 
       <docId>045</docId> 
       <type>Full Name</type> 
       <class>value</class> 
       <docCode>123</docCode> 
       <date>07/12/2016</date> 
       <countries> 
        <country>India</country> 
       </countries> 
       <language>EN</language> 

      </docInfo> 
      <docInfo> 
       <name>value1</name> 
       <docName>value</docName> 
       <docId>1219</docId> 
       <type>Full Name</type> 
       <class>value</class> 
       <docCode>123</docCode> 
       <date>07/12/2016</date> 
       <countries> 
        <country>India</country> 
       </countries> 
       <language>EN</language> 

      </docInfo> 
</product> 
<product> 
.. 
</product> 
</products> 

要件:私は他のXMLSでさらに処理するためにハッシュマップのリストに製品に情報を保存する必要があります。まず、私はStax APIを使ってthis.Butという要素を使うと思っていましたが、docInfo要素にはcountries要素がありますので、多くの国で複数のドキュメントが存在する可能性があります。私が十分明確であるかどうか教えてください

この状況を処理するのに良いパーサがあれば教えてください。私はこのXMLのスキーマを持っていません。

ありがとうございます。

答えて

0

最高はSAXを使用することで、XMLの大きな量を解析するために: https://docs.oracle.com/javase/tutorial/jaxp/sax/parsing.html

あなたはContentHandlerのインターフェイスを実装し、DOCINFOとその後の国を解析する際に必要なロジックを置くことができます。

+0

あなたのコメントをありがとう、JAXBについてはどうですか?私たちはそのような状況でそれを使うことができますか? – Khushi

関連する問題