Was ist die beste/einfachste Weise zu Lesen, die in einer XML-Datei in Java-Anwendung?
Derzeit unsere Java-Anwendung verwendet die Werte in eine tab-getrennte *.cfg-Datei. Wir müssen dies ändern-Anwendung, so dass es verwendet nun eine XML-Datei.
Was ist die beste/einfachste Bibliothek zu benutzen, um zu Lesen, im Werte von dieser Datei?
InformationsquelleAutor der Frage rmcc | 2009-01-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Natürlich gibt es viele gute Lösungen, basierend auf, was Sie brauchen. Wenn es nur eine Konfiguration haben, sollten Sie einen Blick auf Jakarta commons-configuration und commons-digester.
Sie können immer mit dem standard-JDK-Methode bekommen Sie ein Dokument :
InformationsquelleAutor der Antwort Guillaume
XML-Code:
Java-Code:
Ausgabe:
Habe ich empfohlen, die dies Lesen: Normalisierung im DOM-parsing mit java - wie funktioniert das?
Beispiel Quelle.
InformationsquelleAutor der Antwort Ran Adler
Gibt es einen bestimmten Grund, die Sie gewählt haben XML-config-Dateien? Ich habe getan, XML-configs in der Vergangenheit, und Sie haben oft stellte sich heraus, um mehr Kopfschmerzen als alles andere.
Ich glaube, die eigentliche Frage ist, ob Sie so etwas wie die Preferences-API möglicherweise besser in Ihre situation.
Gründe für die Verwendung der Preferences API über einen roll-your-eigenen XML-Lösung:
Vermeidet typische XML-Hässlichkeit (DocumentFactory, etc), zusammen mit der Vermeidung von 3rd-party-Bibliotheken, die XML-backend
Integrierte Unterstützung für default-Werte (keine Besondere Behandlung erforderlich für die fehlenden/korrupten/ungültigen Einträge)
Keine Notwendigkeit zu desinfizieren die Werte für die XML-Speicherung (CDATA Verpackung, etc)
Garantierten status des hintergrundspeichers (keine Notwendigkeit, ständig zu schreiben, die XML auf die Festplatte)
Backing-store ist konfigurierbar (Datei auf der Festplatte, LDAP, etc.)
Multi-threaded-Zugriff auf alle Einstellungen für freie
InformationsquelleAutor der Antwort James Van Huis
Als Sie für Fragen der einfachste Bibliothek, fühle ich mich verpflichtet hinzuzufügen, ein Ansatz, ganz anders als im Guillaume top-Antwort gestimmt. (Die anderen Antworten, sjbotha ist JDOM erwähnen, die am nächsten ist, was ich vorschlagen).
Ich bin gekommen, zu glauben, dass für die XML-handling in Java mit dem standard-JDK-tools ist sicherlich nicht der einfachste Weg, und auch das nur unter bestimmten Umständen (z.B. nicht in der Lage, zu verwenden 3rd-party-Bibliotheken, aus irgendeinem Grund) es ist der beste Weg.
Erwägen Sie stattdessen, mit einem guten XML-Bibliothek, wie XOM. Hier ist, wie zu Lesen eine XML-Datei in eine
nu.xom.Document
Objekt:So, dies war nur ein wenig einfacher, als das Lesen der Datei in
org.w3c.dom.Document
war nicht sehr kompliziert, die "Reine JDK" - Ansatz. Aber die Vorteile der Verwendung eine gute Bibliothek, nur starten Sie hier! Was auch immer Sie tun, mit Ihrem XML -, Sie werden oft Weg mit sehr viel einfachere Lösungen, und weniger von Ihren eigenen code zu halten, wenn Sie eine Bibliothek benutzen, wie XOM. Als Beispiele betrachten diese vs. dieseoder diese vs. dieseoder dieser Beitrag enthält sowohl XOM und W3C-DOM-Beispiele.Andere bieten gegen-Argumente (wie diese) warum kleben Javas standard-XML-APIs kann es Wert sein - diese haben wahrscheinlich Verdienst, zumindest in einigen Fällen, obwohl ich persönlich nicht abonnieren Sie alle von Ihnen. In jedem Fall, bei der Wahl die eine oder andere Weise, es ist gut, sich bewusst zu sein, beide Seiten der Geschichte.
(Diese Antwort ist Teil meiner Bewertung des XOM, ist ein starker Anwärter in meinem Suche nach der besten Java-XML-Bibliothek zu ersetzen, dom4j.)
InformationsquelleAutor der Antwort Jonik
Blick in JAXB.
InformationsquelleAutor der Antwort cletus
JAXB ist einfach zu bedienen, und es ist in Java 6 SE. Mit JAXB, oder anderen XML-Datenbindung, wie Einfach Sie nicht haben, um die XML selbst, ist die meiste Arbeit ist getan, die von der Bibliothek. Die grundlegende Verwendung ist auf Anmerkung hinzufügen, um Ihre bestehenden POJO. Diese Annotationen werden dann verwendet, um ein XML-Schema erstellen für Sie die Daten und auch beim Lesen/schreiben von Daten aus/in eine Datei.
InformationsquelleAutor der Antwort Pierre Buyle
Habe ich nur verwendet jdom. Es ist ziemlich einfach.
Gehen hier zur Dokumentation und zum download: http://www.jdom.org/
Wenn du ein sehr sehr großes Dokument, dann ist es besser, es nicht zu Lesen alle in den Speicher, aber mit einem SAX-parser, die Aufrufe Ihrer Methoden, wenn es sich auf bestimmte tags und Attribute. Sie müssen erstellen Sie dann eine state-machine zur Bewältigung der eingehenden Anrufe.
InformationsquelleAutor der Antwort Sarel Botha
Abhängig von Ihrer Anwendung und den Umfang der cfg-Datei, eine properties-Datei ist möglicherweise der einfachste. Sicher, es ist nicht so elegant wie xml, aber es sicherlich einfacher.
InformationsquelleAutor der Antwort tmeisenh
Verwenden
java.Bohnen.XMLDecoder
Teil des Kern-Java SE seit 1.4.Es ist einfach zu schreiben Sie die Konfigurationsdateien von handoder nutzen Sie die entsprechenden
XMLEncoder
mit einigen setup zu schreiben, neue Objekte zur Laufzeit.InformationsquelleAutor der Antwort erickson
Einfachsten bei weitem, werden Einfache http://simple.sourceforge.netmüssen Sie nur kommentieren ein einzelnes Objekt wie so
Dann alles, was Sie zu tun haben, Lesen die gesamte Datei geben Sie den Speicherort und es wird analysiert, und füllen Sie die annotierte POJO ist. Dieser wird alles tun, den Typ-Konvertierungen und-Validierung. Sie können auch Anmerkungen für die persister-Rückrufe, falls erforderlich. Lesen können Sie das wie so.
InformationsquelleAutor der Antwort ng.
Dies ist, was ich verwenden. http://marketmovers.blogspot.com/2014/02/the-easy-way-to-read-xml-in-java.html Es sitzt oben auf dem standard-JDK-tools, so dass, wenn es fehlen einige Funktion können Sie immer verwenden Sie die JDK-version.
Diese wirklich macht die Dinge einfacher für mich. Es ist besonders schön, wenn ich das Lesen einer config-Datei gespeichert und die ältere version der software, oder manuell vom Benutzer bearbeitet. Es ist sehr robust und nicht eine Ausnahme werfen, wenn einige Daten nicht exakt in dem format, das Sie erwarten.
InformationsquelleAutor der Antwort Trade-Ideas Philip
Hier ist eine wirklich einfache API, die ich erstellt für das Lesen von XML-Dateien in Java. Es ist unglaublich einfach und leicht zu bedienen. Hoffe, es ist nützlich für Sie.
http://argonrain.wordpress.com/2009/10/27/000/
InformationsquelleAutor der Antwort Chris