Hallo,
ich möchte gerne folgende XML auslesen:
Hier mal mein Test:
Ich benötige die Infos:
- prints
- Die einzelnen Fotos (IMG_0001.JPG, IMG_0002.JPG, IMG_0003.JPG, IMG_0004.JPG)
- Output (prints\160820_172159.jpg)
Leider klappt das nicht so ganz wie ich mir das vorstelle:
ich möchte gerne folgende XML auslesen:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<myapp version="1.0">
<photo_information>
<date>2016/08/20</date>
<time>17:21:59</time>
<user_data></user_data>
<prints>1</prints>
<photos>
<photo image="1">IMG_0001.JPG</photo>
<photo image="2">IMG_0002.JPG</photo>
<photo image="3">IMG_0003.JPG</photo>
<photo image="4">IMG_0004.JPG</photo>
<output>prints\160820_172159.jpg</output>
</photos>
</photo_information>
</myapp>
Hier mal mein Test:
Code:
package my.app.test;
import java.io.File;
import java.io.IOException;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;
public class TestXML {
public static void main(String[] args) {
Document doc = null;
String filePath = "/myPath/IMG_0001.xml";
File f = new File(filePath);
try {
// Das Dokument erstellen
SAXBuilder builder = new SAXBuilder();
doc = builder.build(f);
XMLOutputter fmt = new XMLOutputter();
// komplettes Dokument ausgeben
fmt.output(doc, System.out);
// Wurzelelement ausgeben
Element element = doc.getRootElement();
System.out.println("\nWurzelelement: " + element);
// Wurzelelementnamen ausgeben
System.out.println("Wurzelelementname: " + element.getName());
// Eine Liste aller direkten Kindelemente eines Elementes erstellen
List alleKinder = (List) element.getChildren();
System.out.println("Erstes Kindelement: "
+ ((Element) alleKinder.get(0)).getName());
// Eine Liste aller direkten Kindelemente eines benannten
// Elementes erstellen
List benannteKinder = element.getChildren("photos");
// Das erste Kindelement ausgeben
System.out.println("benanntes Kindelement: "
+ ((Element) benannteKinder.get(0)).getName());
// Wert eines bestimmten Elementes ausgeben
Element kind = element.getChild("bw_mode");
System.out.println("Photo: " + kind.getValue());
// Attribut ausgeben
Element kind2 = element.getChild("photo");
System.out.println("Photo: " + kind2.getAttributeValue("name"));
} catch (JDOMException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Ich benötige die Infos:
- prints
- Die einzelnen Fotos (IMG_0001.JPG, IMG_0002.JPG, IMG_0003.JPG, IMG_0004.JPG)
- Output (prints\160820_172159.jpg)
Leider klappt das nicht so ganz wie ich mir das vorstelle: