Das Lesen von Großen XML-Datei mit StAX und XPath

In der input-Datei enthält Tausende von Transaktionen in XML-format, welches rund 10 GB Größe. Die Voraussetzung ist, wählen Sie jede Transaktion, die XML-basiert auf der Eingabe des Benutzers und senden Sie es an die Verarbeitung system.

Den Beispiel-Inhalt der Datei

<transactions>
    <txn id="1">
      <name> product 1</name>
      <price>29.99</price>
    </txn>

    <txn id="2">
      <name> product 2</name>
      <price>59.59</price>
    </txn>
</transactions>

Den (technischen)Benutzer wird voraussichtlich die Eingabe tag-name wie <txn>.

Möchten wir zu dieser Lösung werden mehr Generika. Der Inhalt der Datei kann unterschiedlich sein, und die Benutzer können geben Sie einen XPath-Ausdruck wie "//transactions/txn" zu Holen einzelne Transaktionen.

Es gibt einige technische Dinge, die wir haben, zu prüfen, hier

  • Können Sie die Datei in einem freigegebenen Speicherort oder FTP -
  • Da die Größe der Datei ist riesig, wir können nicht laden Sie die gesamte Datei JVM

Können wir den StAX-parser für dieses Szenario? Hat es sich um XPath-Ausdruck als Eingabe und wählen/wählen Sie die Transaktion XML.

Auf der Suche nach Anregungen. Vielen Dank im Voraus.

  • Meine Empfehlung ist, nutzen Sie die erweiterte vtd-xml in der mem-Karte-Modus und 64-bit-jvm
Schreibe einen Kommentar