Hi,
ich will ein XML-File auslesen, das so aussieht:
Wie ich an das Rootelement und die Children rankomme, weiß ich und klappt auch:
Mein Problem ist das attachment-Element! Diese kann in einem Block mehrmals, einmal oder keinmal vorkommen. So wie ich es jetzt habe, liest es mir aber jeweils nur den ersten attachment-Eintrag im jeweiligen Block aus (wenn mehrere vorhanden sind) oder gibt eine Meldung bei nicht-vorhandensein aus.
Ich möchte aber auch den zweiten, dritten etc. attachment-Eintrag ausgelesen bekommen, wenn mehrere vorhanden sein sollten.
Ich komme einfach nicht drauf, wie´s funktionieren kann! Könnt ihr mir helfen?
Danke und Gruß
ich will ein XML-File auslesen, das so aussieht:
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<firma>
<anfrage>
<betreff>erster Block</betreff>
<von>info@test.de</von>
<gesendet_am>28.03.2008</gesendet_am>
<content>Hey, her der Content vom ersten Block</content>
<attachment file="1" type="attachment">Z:/workspace/FetchIMAP/Attachments/trail.txt.10</attachment>
<attachment file="2" type="attachment">Z:/workspace/FetchIMAP/Attachments/trail.txt.20</attachment>
</anfrage>
<anfrage>
<betreff>zweiter Block</betreff>
<von>info@test.de</von>
<gesendet_am>11.02.2008</gesendet_am>
<content>Hallo, hier der Content zweiter Block</content>
<attachment file="1" type="attachment">Z:/workspace/FetchIMAP/Attachments/trail.txt.10</attachment>
</anfrage>
<anfrage>
<betreff>dritter Block</betreff>
<von>info@test.de</von>
<gesendet_am>01.03.2008</gesendet_am>
<content>HI, hier der Content vom dritten Block</content>
</anfrage>
</firma>
Wie ich an das Rootelement und die Children rankomme, weiß ich und klappt auch:
Code:
...
//Wurzelelement auslesen
Element root = doc.getRootElement();
//Children einlesen (hier: wenn Document eine Vorlage ist)
List listRootElements = root.getChildren();
//jedes Child abarbeiten
for( int i=0;i<listRootElements.size();i++ ){
Element anfrage = (Element)listRootElements.get(i);
System.out.println( anfrage );
//betreff auslesen
String sBetreff = anfrage.getChild("betreff").getText();
System.out.println( sBetreff );
//von auslesen
String sVon = anfrage.getChild("von").getText();
System.out.println( sVon );
//gesendet_am auslesen
String sGesendet_am = anfrage.getChild("gesendet_am").getText();
System.out.println( sGesendet_am );
//content auslesen
String sContent = anfrage.getChild("content").getText();
System.out.println( sContent );
//attachment auslesen
Element attachment = anfrage.getChild("attachment");
//attachment-Block
if( attachment != null ){
String sAttachment = attachment.getText();
System.out.println( sAttachment );
}else{
System.out.println( "Kein attachment-Element vorhanden!!!" );
}
}
Ich möchte aber auch den zweiten, dritten etc. attachment-Eintrag ausgelesen bekommen, wenn mehrere vorhanden sein sollten.
Ich komme einfach nicht drauf, wie´s funktionieren kann! Könnt ihr mir helfen?
Danke und Gruß