2017-06-06 2 views
1

Ich möchte unter XML-Datei, die riesige Daten hat, analysieren, Hier ist meine Xml.Parsen von XML zu Java Liste

Was ist der beste Weg, von XML zu Java-Liste zu analysieren? Kann ich SAXParser zum Parsen der XML oder anderer effizienter Methoden verwenden? Ich erwarte, ich hätte Daten mehr als 1 Million.

<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

Mögliches Duplikat von [Parsen großer XML-Dokumente in JAVA] (https://stackoverflow.com/questions/15132390/parsing-large-xml-documents-in-java) – geo

+0

Warum Java-Liste? Sie könnten auch eine Dom-Struktur erstellen und mit xpath abfragen ... –

+0

Diese SO-Post kann Ihnen helfen, eine bessere/performante Lösung zu finden https://stackoverflow.com/questions/8791600/can-sax-parsers-use-xpath- in-java –

Antwort

0

Ich würde Sie this answer.

sehen vorschlagen Es SAXParser für große XMLs empfiehlt.

Mit 1 Million + Strings in einer Liste in Java, gibt es im Prinzip kein Problem. Sie könnten so viele wie Integer.MAX_VALUE-5 iirc haben.

Dokumentation für SAXParser ist here und ist ziemlich vollständig. Sie sollten kein Problem haben, indem Sie die gewünschten Elemente nehmen und in eine Liste einfügen.

Schließlich, wenn Sie mehr als eine einfache Liste von Zeichenfolgen im Speicher haben möchten, würde ich andere Sammlungen wie Dictionary betrachten.

+0

Das Parsen selbst ist hier nicht das eigentliche Problem. Ist die Liste, die der Benutzer im Speicher haben will, die auch nicht so viel klingt, aber in jedem Fall ist das der Teil, der sich Sorgen macht, nicht der Speicher des Sax Parsers. –

+0

Ja, Sie haben Recht, der "Titel" Teil seiner Frage erwähnt, es in einer Liste zu haben. –

+0

Ich habe versucht, alle Teile seiner Frage zu beantworten. Vielen Dank für Ihr Feedback @David Hofmann –