Datenaustausch mit XML / 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.

JDOM-Programmierung

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: info2018@wilfried-grupe.de

www.wilfried-grupe.de/JDOM.html