SAX-Parser beenden?

MiMa

Top Contributor
Manchmal kommt es vor, das durch eine Datenbankabfrage in einer XML nicht "einen" Datensatz zurück gegeben wird, sondern auch schon mal "zwei"
XML:
...
...
<version>1.1</version>
<numberOfRecords>2</numberOfRecords>
<records>
<record>
...
...
Mir ist es aufgefallen, als ich mir die falschen Werte nicht erklären konnte.
Ich könnte bei dem End-Tag von Record abbrechen oder bei einer Prüfung des Wertes.

In beiden fällen müsste ich den Parser beenden oder abbrechen.
Ich möchte nachfragen, ob mir jemand dabei helfen könnte?
Ich habe zwar Lösungen gefunden, die schon zig Jahre alt sind, die ich aber auch nicht wirklich verstanden habe.
Vielleicht gibt es da heute auch noch ganz andere Möglichkeiten die auch nicht so kompliziert sind?

Danke
Mi
 
Ich habe zwar Lösungen gefunden, die schon zig Jahre alt sind, die ich aber auch nicht wirklich verstanden habe.
Vielleicht gibt es da heute auch noch ganz andere Möglichkeiten die auch nicht so kompliziert sind?

Mich hat auch schon getört, dass man einen SAX-Parser nicht anhalten/abbrechen kann.

Ich habe immer eine Exception zum Abbrechen geworfen.
 
Ja sowas in der Art habe ich auch im Netz gelesen und nicht wirklich was verstanden.
Exceptions war für mich auf immer ein Thema, welches ich gerne aufgeschoben habe 😉 und wollte es jetzt eigentlich nicht nachholen.
Ich hatte gehofft es gäbe da mittlerweile etwas um es einfacher zu handhaben da die Artikel die ich gefunden hatte von 2000-2005 waren.
 
Habe eine variable "parsen" vom typ boolean definiert und bei Start auf true gesetzt.
In den if-Anweisungen habe ich dann diese ergänzt.
Java:
.. && parsen == true) {
    ..
}
An dem punkt wo ich abbrechen möchte setzte ich diese einfach auf false und dann sollte es ohne Änderungen an den bestehenden Werten durchlaufen.
Mal sehen ob es klappt 😉
 
Zuletzt bearbeitet:
.. && parsen == true
hier genügt auch
Java:
.. && parsen
Spätestens, wenn du einmal versehentlich geschrieben hast
Java:
.. && parsen = true
und stundenlang den Fehler gesucht hast, wirst du diesen Hinweis beachten.

Ich denke aber, das das, was du vorhast, funktioniert. Es ist dennoch schade, das man den SAX-Parser nicht stoppen kann und unnötige Funktionsaufrufe auf diese Art ignorieren muss.
 
Danke für den Tipp, das werde ich auch so implementieren.
Das ausschalten des Parsers hat so ganz gut funktioniert.
 

Zurück
Oben