IT's Real |

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

, ,

Find it!

Theme Design by devolux.org

Bad Behavior has blocked 44 access attempts in the last 7 days.