XML als Datenaustauschformat / JDOM-Programmierung

JDOM-Programmierung

JDOM-Programmierung

➪ Im Vergleich zu DOM deutlich einfacher sieht die Generierung von XML in JDOM aus: zumindest kommt die direkte Instanziierung über Standard- und parametrisierte Konstruktoren dem objektorientierten Programmierer sehr entgegen. Das gilt auch für das Abspeichern des in JDOM generierten Baumes in eine XML-Datei; hierfür stehen die Klassen "XMLOutputter" und "Format" zur Verfügung, in denen das Nähere geregelt werden kann, sowohl für "System.out" als auch für einen FileOutputStream.

XML generieren mit JDOM

JDOM2 bietet dem Programmierer einen komfortableren Programmierstil.


 public static void createXML_JDOM2(){
  org.jdom2.Document doc;
  org.jdom2.Element eroot, ei;  
  org.jdom2.output.XMLOutputter outputter;
  org.jdom2.output.Format format;
  java.io.File f;
  doc = new org.jdom2.Document();
  eroot = new org.jdom2.Element("Root");
  doc.setRootElement(eroot);
  for(int i=1; i<10; i++){
   ei = new Element("Zahl");
   ei.setText(Integer.toString(i));
   eroot.addContent(ei);
  }
  try {
   outputter = new org.jdom2.output.XMLOutputter();
   format = org.jdom2.output.Format.getPrettyFormat();
   format.setEncoding("ISO-8859-1");
   format.setIndent("  ");   
   outputter.setFormat(format);
   outputter.output(doc, System.out);   
   f = new  java.io.File("C:/wg/JDOMgenerated.xml");
   OutputStream os = new FileOutputStream(f);   
   outputter.output(doc, os);
   os.flush();
  } catch (IOException e) {
  }
 }

Das Resultat:


<?xml version="1.0" encoding="ISO-8859-1"?>
<Root>
  <Zahl>1</Zahl>
  <Zahl>2</Zahl>
  <Zahl>3</Zahl>
  <Zahl>4</Zahl>
  <Zahl>5</Zahl>
  <Zahl>6</Zahl>
  <Zahl>7</Zahl>
  <Zahl>8</Zahl>
  <Zahl>9</Zahl>
</Root>

Java: XML mit JDOM2 auswerten


 public static void JDomDemo(String filename)  {
  try {
   System.out.println("\nJDOM\n");
   SAXBuilder builder = new SAXBuilder();
   org.jdom2.Document doc = null;
   try {
    doc = builder.build(new File(filename));
   } catch (IOException e1) {
    e1.printStackTrace();
   }
   org.jdom2.Element root = doc.getRootElement();
   java.util.List lOrt = root.getChildren("Ort");
   for (int i = 0; i < lOrt.size(); i++) {
    org.jdom2.Element e = (org.jdom2.Element) lOrt.get(i);
    System.out.println(e.getName() + ": " + e.getChildText("name"));
    java.util.List lMensch = e.getChildren("Mensch");
    for (int m = 0; m < lMensch.size(); m++) {
     org.jdom2.Element eMensch = (org.jdom2.Element) lMensch.get(m);
     System.out.println("\t" + eMensch.getChildText("vorname")
       + " " + eMensch.getChildText("name"));
    }
   }
  } catch (JDOMException e) { e.printStackTrace(); }
 }

wg / 5. Dezember 2017



Fragen? Anmerkungen? Tips?

Bitte nehmen Sie Kontakt zu mir auf:

Vorname
Nachname
Mailadresse





StAX



Vielen Dank für Ihr Interesse an meiner Arbeit.


V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de

www.wilfried-grupe.de/JDOM.html