TAG | XML
XML wird in unserer heutigen Zeit immer wichtiger. Da liegt es nahe, dass ein Programmierer damit umgehen kann. Da die Standardpakete nicht wirklich Java typisch sind, gibt es JDOM. JDOM kann man unter der Offiziellen Seite(http://www.jdom.org/) herunterladen.
1.Bibliotheken
1. Die JDOM.jar wird benötigt, sie liegt im JDOM Verzeichnis unter build
2. Weitere Bibliotheken werden benötigt diese liegen im Ordner lib
3. Einbinden der Bibliotheken (hier: jdom.jar. jaxen.jar, saxpath.jar)
<?xml version="1.0" encoding="UTF-8"?> <NAMEROOT> <mainTest nr="0"> <test>das war der Test 1</test> </mainTest> <mainTest nr="1"> <test>das war der Test 2</test> </mainTest> <mainTest nr="2" /> <mainTest nr="3"> <test>das war der Test 4</test> </mainTest> </NAMEROOT>
Wie es generiert wird:
import org.jdom.Document; import org.jdom.Element; import org.jdom.JDOMException; import org.jdom.input.SAXBuilder; import org.jdom.output.Format; import org.jdom.output.XMLOutputter; public class xmlmitJDOM{ public void writexml(String[] testFeld){ //Haupt element wird angelegt Element root = new Element("NAMEROOT"); int i=0; while(testFeld[i]!=null){ //element mainTest anlegen Element mainTest = new Element("mainTest"); mainTest.setAttribute("nr", ""+i); //1.Überprüfung ob das Element einen Inhalt hat 2. Entfernen aller Leerzeichen if(testFeld[i]. replaceAll(" ", "").length()!=0){ // element test anlegn Element test=new Element("test"); //Text in test einfügen test.setText(testFeld[i]); //test als unterknoten von mainTest machen mainTest.addContent(test); } //maintest root unterordnen root.addContent(mainTest); i++; } //dokument anlegen Document doc = new Document(root); try { //Pfad mit dateinamen FileOutputStream out= new FileOutputStream("PFAD+ Dateinamen.xml"); XMLOutputter serializer= new XMLOutputter (Format.getPrettyFormat()); //dokument extern schreiben serializer.output(doc, out); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
Einlesen der XML:
public void readxml(){ try { SAXBuilder builder = new SAXBuilder(); Document doc = builder.build("Pfad zur xml"); //root element herauslesen Element root=doc.getRootElement(); //liste anlegen List<?> allChildren =root.getChildren(); String testInhalt; for(int i=0;i<allChildren.size();i++){ //auslesen und da beim writer leere datenelemente nicht //geschrieben werden,wird geschaut ob das element existiert //mit allChildren.get(i)) ist dazu da, um jedes x belibige //mainTest element anzuwählen if( ((Element) allChildren.get(i)).getChild("test")!=null){ //da allChildren eine Liste ist muss man //es zu einem Element konvertieren testInhalt=((Element) allChildren.get(i)).getChild("test").getText(); }else{ testInhalt=""; } einlesenTestfeld[i]=testInhalt; } //ausgabe in der Konsole for(int j=0;j<einlesenTestfeld.length;i++)System.out.println(einlesenTestfeld[j]); } catch (JDOMException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
Ausgabe:
das war der Test 1
das war der Test 2
leeres Element
das war der Test 4

