Welche Klassen zum erzeugen/auslesen eines XML Files verwend

  • Themenstarter Themenstarter Ghosti
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Ghosti

Gast
Hallo,

ich bin gerade dabei mir ein DVD Programm zu erstellen und die Daten möchte ich in einem XML Files ablegen und später daraus wieder die Daten auslesen bzw. ändern.

Welche Klassen wären dafür am besten geeignet um eine XML Datei zu erzeugen?

Wie schaut es mit der Geschwindigkeit beim Auslesen von großen Files aus, bzw. beim suchen nach Daten oder ändern von Daten aus?

Danke für eure Hilfe
 
In erster Linie geht es mir um die Unterschiede. Welche wofür am besten eignet sind bzw. welche sich für mein Projekt eignen würden.

Wo liegen die Hauptunterschiede?
 
Em besten lässt sich XML mit XML Binding Frameworks wie EMF, oder JaxB verwenden.
Für's suchen über große Datenbestände kann ich dir Lucene ans Herz legen (die Frage war allerdings recht allgemein, daher sind konkrete Empfehlungen schwierig)
 
@wildcard

wie ich schon geschrieben habe. Es soll ein DVD Programm werden. D.h. im XML File werden Sachen wie Titel, FSK, Genre, Schauspieler usw. stehen.

Das ganze halt für ein paar hundert (später mehr) Filme.

Spricht etwas gegen DOM für die Erstellung der XML files bzw. wo sind die Vorteile bei z.b. JaxB?
 
das Xml File soll auf der HD abgelegt werden. also nicht irgnedwo auf einem Server.
 
Ich würde das an deiner Stelle mit einem Embedded Rdbms wie Hsqldb lösen. Hsqldb kann die Daten auch lokal auf der Platte als XML speichern nur mit dem Unterschied, daß du ganz normal JDBC als API verwenden kannst.
 
@foobar

will das ganze ohne JDBC haben. Einfach alles in Files.
 
Erstelle einfach eine Klassenhierarchie für deine DVDs und füge die entsprechenden JAXB-Annotationen
in die Klassen ein. Das Lesen und Speichern geht mit JAXB ganz einfach. z.B. mit diesen generischen Methoden
Code:
/**
 * Liest eine XML Datei ein und liefert das Root-Element zurück.
 * 
 * @param <T> Typ des Root-Elements
 * @param file XML-Datei
 * @param type Klasse des Root-Elements
 * @return Root-Element
 * @throws JAXBException Fehler beim Lesen aus XML
 */
@SuppressWarnings("unchecked")
public static <T> T load(File file, Class<T> type) throws JAXBException {
   assert file != null;
   assert type != null;
   JAXBContext ctx = JAXBContext.newInstance(type);
   Unmarshaller unmarshaller = ctx.createUnmarshaller();
   return (T)unmarshaller.unmarshal(file);
}

/**
 * Speichert das gegebene Element in einer XML-Datei
 * 
 * @param <T> Typ des Root-Elements
 * @param file XML-Datei
 * @param root Root-Element
 * @throws JAXBException Fehler beim Schreiben in XML
 */
public static <T> void store(File file, T root) throws JAXBException {
   assert file != null;
   assert root != null;
   JAXBContext ctx = JAXBContext.newInstance(root.getClass());
   Marshaller marshaller = ctx.createMarshaller();
   marshaller.marshal(root, file);
}
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben