lucky18: Riesige XMLs parsen? (1,5 GB)

Wie kann man wirklich riesige xml-files (1,5GB) parsen?

Sagt mir nicht dass das nicht sinnvoll ist, ich weiß es! aber ich muss trotzdem irgendeine lösung finden.

msxml dom parser haben wir nach 2,5 tagen laufzeit abgebrochen.

Was habt ihr für vorschläge??

lg Stefan

  1. Hi,

    Vorschläge - puh, schwer, das ist eine Menge Daten. Ich weiß nicht ob es dein Problem löst, das wird wohl auf die Implementierung des Parsers und deines Handlers ankommen, aber es könnte effizienter sein zu SAX zu wechseln, es sei denn du brauchst den DOM-Baum wirklich, dann wird's keinen Unterschied machen. Aber wenn dich andere Aspekte mehr interessieren oder nur Teile der Information, dann ist DOM der Overkill.

    MfG
    Rouven

    --
    -------------------
    ie:| fl:| br:> va:| ls:& fo:) rl:( n4:{ ss:) de:] js:| ch:? mo:} zu:|
    1. ja das dom nicht wirklich sinnvoll ist hab ich auch schon bemerkt.
      ich versuchs jetzt mal SAX da ich eigentlich nur aus dem xml lese und keine updates drauf mache. Wäre StAX auch eine alternative? aber damit kenn ich mich nicht aus!

      1. Hallo,

        Wäre StAX auch eine alternative? aber damit kenn ich mich nicht aus!

        Wenn du wirklich nur lesen willst, wäre das durchaus in Erwägung zu ziehen.

        http://www.devx.com/Java/Article/30298 http://jcp.org/en/jsr/detail?id=173 (mit Links zu weiterführenden Dokumentation)

        Habt ihr beim MSXML auch den XmlReader versucht?:
        http://msdn.microsoft.com/library/en-us/cpref/html/frlrfsystemxmlxmlreaderclasstopic.asp

        Grüße
        Thomas

  2. Hi Stefan,

    also, wie wäre es, wenn man das große XML-File in viele kleine XML-Files aufsplittet, jeweils so, daß eine komplette Struktur, die möglichst hoch in der Hierarchie steht, in einem File drin ist.

    z.B.

    <NODE1>
       <NODE2>
       ...
          <NODE99>
          </NODE99>
       ...
    </NODE1>
    <NODE1>
        <NODE2>
    ...

    in Files ablegen, sodaß alles von <NODE1> bis </NODE1> in einem File abgelegt werden kann und dann dieses parsen.

    Gruß

    Hans

  3. Wie kann man wirklich riesige xml-files (1,5GB) parsen?

    Meinst du zufällig die Wikipedia-Datenbank?

    Selbst wenn nicht, im MediaWiki gibt's ein Importscript zum Import der XML-Datei mit den ganzen Artikeln... Das läuft zwar auch seine zwei Tage, aber funktioniert...

  4. Hallo Freunde des gehobenen Forumsgenusses,

    Wie kann man wirklich riesige xml-files (1,5GB) parsen?

    Beschreib mal was das für Daten sind, vielleicht musst du ja gar nicht alles auf einmal einlesen? Ich habe z.B. den RDF-Dump des DMOZ ausgelesen, der ist 2GB groß und ich habe sicher nie mehr als 100 KB Speicher verbraucht, ich hab ihn einfach zeilenweise eingelesen, die zeile verarbeitet und in eine Datenbank geschrieben.

    Gruß
    Alexander Brock

  5. Hallo.

    msxml dom parser haben wir nach 2,5 tagen laufzeit abgebrochen.

    Was habt ihr für vorschläge??

    Nicht abzubrechen?
    MfG, at