2017-06-06 8 views
1

私は巨大なデータを持つxmlファイルの下に解析したい、ここに私のXMLがある。XMLをJavaリストに解析する

XMLからJava Listへの解析にはどのような方法が最適ですか? XMLやその他の効率的な方法の解析にSAXParserを使用できますか?私は100万以上のデータを持っていると思います。

<root> 
    <Company> 
     <name>TATA</name> 
     <Location> 
      <id>1</id> 
      <name>India</name> 
      <branchesList> 
       <branches> 
       <name>Chennai</name> 
       <id>Ch-1</id> 
       <status>Active</status> 
      </branches> 
      <branches> 
       <name>Hyderabad</name> 
       <id>Hy-1</id> 
      <status>In-Active</status> 
      </branches> 
      <branches> 
       <name>Delhi</name> 
       <id>De-1</id> 
       <status>Active</status> 
      </branches> 
     </branchesList> 
     </Location> 
     <Location> 
      <id>1</id> 
      <name>USA</name> 
      <branchesList> 
       <branches> 
       <name>NewYork</name> 
       <id>Nw-1</id> 
       <status>Active</status> 
      </branches> 
      <branches> 
       <name>NewJersy</name> 
       <id>Ne-1</id> 
      <status>In-Active</status> 
      </branches> 
      <branches> 
       <name>Denver</name> 
       <id>De-1</id> 
       <status>Active</status> 
      </branches> 
     </branchesList> 
     </Location> 
     </Company> 

    </root> 
+4

[Javaで大きなXML文書を解析する](https://stackoverflow.com/questions/15132390/parsing-large-xml-documents-in-java)の可能な複製 – geo

+0

なぜJavaのリストですか?あなたはDOMツリーを構築し、xpathを使ってクエリを作成することもできます。 –

+0

このSOの投稿は、より良い/性能の高いソリューションを見つけるのに役立ちます。https://stackoverflow.com/questions/8791600/can-sax-parsers-use-xpath- in-java –

答えて

0

私はあなたがそれは大きなXMLSのためのSAXParserを使用することをお勧めしますthis answer.

を見てお勧めします。

Javaのリストに100万以上の文字列があるため、原則として問題はありません。 Integer.MAX_VALUE-5 iircと同じくらいの数を持つことができます。

SAXParserのドキュメントはhereであり、完全なものです。あなたは、あなたが望む要素を取ってリストに入れても問題はありません。

最後に、メモリ内に単純な文字列のリストを追加したい場合は、Dictionaryのような他のコレクションを調べます。

+0

ここでの解析自体は実際の問題ではありません。ユーザーがメモリに入れたいリストですが、これはあまり聞こえませんが、いずれにしてもサックスパーサーのメモリ使用を心配する部分です。 –

+0

はい、あなたは正しいです、彼の質問の「タイトル」部分はそれをリストに載せていると言います。 –

+0

私は彼の質問のすべての部分に答えようとしました。あなたのフィードバックをありがとう@David Hofmann –