Es hängt wirklich davon ab, was Sie mit dem XML-Dokument machen wollen und wie groß die Dokumente sind.
Grob gesagt können Sie XML-APIs wie folgt kategorisieren:
Einige der verfügbaren Optionen sind:
Es gibt viele Bibliotheken, mit denen Sie XML auf verschiedene Arten handhaben können, und kein Weg ist "der Beste". Wie immer hängt es davon ab, was Sie zu tun versuchen und was Ihre Anforderungen sind.
Wenn ich einen DOM-artigen Parser oder zum Erstellen von XML-Dokumenten brauche, mag ich persönlich XOM , da dies die XML-Dokumente garantiert sind gut geformt und "korrekt". Seine oberste Priorität ist die Korrektheit, die wichtig ist, wenn sie mit anderen Systemen zusammenarbeitet, was XML sehr gut macht. Seine API ist auch sehr gut entworfen und intuitiv, allgemeine Operationen sehr einfach machend.
Java bietet eine gute Unterstützung für XML. Das Problem in einem Sinne ist, dass es so viele Möglichkeiten gibt. Es gibt also keine Lösung, die "die" Art ist, XML in Java zu verarbeiten. Sie müssen Ihre Werkzeuge basierend auf dem Problem auswählen.
Angenommen, Sie haben komplexe validierte Dokumente, die Sie in einen Objektbaum laden möchten, um den Baum abzufragen und zu bearbeiten. Sie werden einen DOM-Parser dafür brauchen, und es gibt eine Nummer zur Auswahl. Dies konvertiert das gesamte Dokument in Objekte, was in Bezug auf die CPU teuer sein kann.
Angenommen, Sie haben ein Dokument, in dem Sie bestimmte Elemente auswählen möchten, und die Leistung ist ein Problem. Probieren Sie einen SAX-Parser, einen Pull-Parser oder XPath aus.
Vielleicht müssen Sie Objekte auf dem Draht marshalieren / unmarshalen. JAXB ist ein Kandidat dafür, ebenso wie andere Optionen.
Also, es gibt keine richtige Antwort auf Ihre Frage. Wie bei jedem [Programmier-] Problem müssen Sie sich das Problem ansehen, die Optionen auswerten und das beste Werkzeug für den Job auswählen.
Sie müssen sich für die Verarbeitung von XML zwischen zwei verschiedenen Ansätzen entscheiden: Es gibt DOM und SAX , beide mit Vor- und Nachteilen. Es hängt alles von Ihren Anforderungen und der Größe des XML-Dokuments ab, das Sie verarbeiten möchten. Der bereits erwähnte JAXB erstellt eine API über beiden und wird mit Java 6 ausgeliefert.
Wenn Sie das oben Gesagte verstanden haben, möchten Sie vielleicht Ihre Frage konkretisieren und vielleicht nach dem besten DOM oder der besten SAX-Implementierung fragen. Abgesehen davon wäre es gut, wenn Sie sagen könnten, was Ihre Anforderungen sind. Möchten Sie XML schreiben oder lesen? Wie groß werden die Dateien sein? Und so weiter.
BEARBEITEN:
Wie Nat darauf hingewiesen hat, gibt es auch StAX als drittes alternatives Konzept.
@Epaga, wenn Sie nicht "das Beste" in den Kontext stellen, werden Sie kläglich scheitern.
Zum Beispiel wäre es sehr dumm, einen riesigen XML-Code in eine DOM-ähnliche Struktur zu laden. Sie müssen das Werkzeug mit Bedacht wählen.
XOM ( Ссылка ) ist ein einfaches, flexibles XML-Toolkit, das ich einfacher und einfacher benutze als viele andere Parser. Seit dem Wechsel von den Standard-W3C-basierten Tools hat sich meine Produktivität erheblich erhöht. In seinen Webseiten erklärt der Autor Elliotte Rusty Harold, warum das Design von XOM das geeignete Modell für ein XML-DOM ist.