XML Bearbeiten ISO 8859-15

Zuletzt bearbeitet:
Es wäre sehr sinnvoll, wenn Du Deine bisherigen Bemühungen zeigen könntest und was Du eigentlich machen willst. Im Moment kann das alles oder nichts sein.
 
Nein, das ist nicht das wonach du suchst.

Suche nach "Tutorial SAX Parser"

Ich würde es dir gerne erklären, aber XML Parsen ist nix, was du nun neu erfindest und es ist schon bestimmt google mal beschrieben.
 
Ich möchte eine XML-Datei einlesen und diese verändern können. Jedoch habe ich Probleme mit der Kodierung.

Die Datei ist als "ISO 8859-15" kodiert.



edit:
Danke, das hilft mir schon mal weiter.
 
Zuletzt bearbeitet:
Das ist doch der Zeichensatz der verwendet wird um den Text darzustellen.

Java:
Document doc;
File f = new File(pfad);

SAXBuilder builder = new SAXBuilder();
InputSource is = new InputSource(pfad);
is.setEncoding("iso-8859-15");
doc = builder.build(is);

XMLOutputter fmt = new XMLOutputter();
fmt.output(doc, System.out);

Hiermit kann ich die XML Datei jetzt ohne Probleme einlesen und auch in der Konsole wieder ausgeben.

mfg
zamu


edit:Jetzt stellt sich mir nur die Frage wie ich in der Datei Elemente suchen und bearbeiten kann.
 
Zuletzt bearbeitet:
Hallo,

ich hätte noch eine Frag zur Bearbeitung der XML-Datei.

[XML]<Feld nr="1234" name="hans" wert="5"/>
<Feld nr="56789" name="michael" wert="3"/>[/XML]

Mit

Java:
getAttributeValue("nr");

komm ich zwar an das erste Feld, aber wie komme ich denn an das Zweite?

Danke und Gruß
Zamu
 
Wenn man mit XML Frameworks arbeitet wie z.B. JDOM bietet es sich an, die verschiedenen Elemente in eine List zu speichern. So kannst du durch alle Elemente iterieren und auf die einzelnen Attribute zugreifen.

Die Children des Rootelements bekommst du mit JDOM z.B. durch einen Aufruf von
Java:
 Element root = document.getRootElement();
List children = root.getChildren();

//Jetzt kannst du in einer Schleife durch die Liste iterieren

for(Element e : children){

   String value = e.getAttributeValue("nr"));
   System.out.println(value);
  
}
 
Zuletzt bearbeitet:
Hi,

kannst du mir auch sagen wie ich zum Beispiel das Feld zwei löschen kann, denn wenn ich das selbe mit deiner Methode versuche, funkioniert das leider nicht.

Gruß
Zamu
 
Dafür musst du ein neues Document erstellen, und in diesem die Inhalte aus dem alten Laden. Aus der alten List mit den Children die beliebigen löschen, und diese List dem neuen Document hinzufügen. Also quasi eine exakte Kopie des ersten.
 
Hallo,

Also du meinst ich soll eine Kopie erstellen und das was ich löschen will einfach nur weglassen, beim schreiben des neuen Dokumentes?

Gruß
Zamu
 
Hi,

kannst du mir dann vllt noch sagen wie ich das ganze wieder als "iso-8859-15" abspeichern kann.

Denn wenn ich das über

Java:
FileWriter writer = new FileWriter (new File("C:/Test/test.xml"));
fmt.output(doc, writer);

mache bekomme ich das nur als "UTF-8" kodiert.
 
Wenn deine XML-Datei eine feste Syntax hat und einem oder mehreren Objekten in deiner Applikation entspricht, kannst du auch JAXB zum deserialisieren nehmen, also statt XML---(Magie)--->DOM---(viel Handarbeit)--->DeinObjekt direkt XML---(Magie)--->DeinObjekt
 

Zurück
Oben