Vergleich der XML-Parsing-APIs auf der Java SE-Plattform

Ich entwickle derzeit einen RSS-Feed-Reader, und ich frage mich, welche XMLParsing-API dafür am besten geeignet wäre. (Bitte beachten Sie, dass ich nicht nach einer Feed-Parser-Bibliothek suche – es ist lediglich der Ausgangspunkt für diese Forschung zu XML-APIs)

Ich suche nach einer Zusammenfassung der verschiedenen XML-Parsing-APIs auf der Java-Plattform, wobei ich mich auf folgende Kriterien konzentriere:

  • Einfache Konfiguration
    • Ist die Konfiguration in einer separaten Datei?
    • Gibt es vernünftige Vorgaben?
  • Benutzerfreundlichkeit
    • Knoten Navigation – zu Geschwistern, zu Kindern, zu den Eltern.
    • Zugriff / Manipulation von Namespaces, Attributen, Text.
    • Ist die classnhierarchie gut durchdacht oder natürlich?
  • Ungültiges XML – was passiert (wann schlägt es fehl?) Und was kann ich tun, wenn:
    • ein ungültiges Zeichen ist aufgetreten (weder in der Kodierung noch in der XML-Spezifikation erlaubt)
    • die Baumstruktur ist nicht gültig (z. B. wegen nicht-entpackter HTML-Tags)

Hier sind einige Informationen, die ich als nützlich, aber nicht entscheidend betrachten würde:

  • performancesvergleiche
  • Eine Liste der verfügbaren Implementierungen

Ich überlege derzeit eine XML-API auf der JVM.

  • Es kann ein Java-Standard (DOM, SAX, StAX, JAXP) oder eine implementierungsspezifische API sein.
  • Es kann eine API für jede Sprache auf der JVM sein (Scala, Groovy, Jython, JRuby …) – stellen Sie einfach sicher, dass es etwas im Vergleich zu den Standard Java APIs hinzufügt.

Ich glaube, dass eine gute Möglichkeit, diesen Thread zu strukturieren, darin besteht, nur eine API pro Antwort zu haben.

jaxp ist keine Implementierung, sondern eine Wrapper- / Fassaden-API, in der Sie mehrere Parser-Implementierungen pluginieren können. Sie bleiben also bei Sax, Dom und Stax. jetzt unten sind zwei gute Vergleiche und Sie tun die Mathematik:

http://techstop.abidshafiq.com/2010/02/java-xml-api-comparison/ http://java.sun.com/performance/reference/whitepapers/StAX-1_0.pdf

Schau mal, du wirst eine Handvoll bekommen! http://www.xml.com/pub/rg/Java_Parsers

Aber ich hatte einige meiner Freunde gesehen, die diese in ihren Projekten benutzten. Obwohl JAXP weit verbreitet ist, sieht dieses vielversprechend aus.

Apache Xerces-Parser Version 1.2.3 ( http://xerces.apache.org/xerces-j/ )