XML-Document auslesen

Status
Nicht offen für weitere Antworten.
W

wane

Gast
stevg: sorry, hab ausversehen zu viel gelöscht, habs noch mal unter deinem Namen gepostet

Hallo zusammen,
ich möchte eine XML Datei aus einem Applet heraus lesen und parsen.
Die Datei liegt natürlich auf dem Server im selben Verzeichnis wie das Applet.

Ich habe nach ewigem Suchen jetzt 2 bzw. 3 Möglichkeiten entdeckt. Welche ist wohl die geeignetste und wie funktioniert sie?!

1) XML-Datei mit BufferedReader in einen String einlesen und danach mit einem Parser durchparsen --> klingt ganz gut, nur versteh ich nicht, wie ich den Parser aufbauen soll

Code:
Code:
public void readFile() throws Exception{
     
   
    URL yahoo = new URL("http://localhost/classes/Test.xml");
        BufferedReader in = new BufferedReader(
                                new InputStreamReader(
                                yahoo.openStream()));

        String inputLine;
        String sGesamttext="";

        while ((inputLine = in.readLine()) != null){
            System.out.println(inputLine);
            sGesamttext = sGesamttext + "\n" + inputLine;}

        in.close();
        System.out.println(sGesamttext);
    }
2) XML-Datei mit dem SAXParser durchparsen -->

Code:
DefaultHandler handler = new DefaultHandler();
File datei = new File(sDateiName);
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();
saxParser.parse(datei, handler);


Der handler wird mir jetzt wahrscheinlich die einzelnen Tags herauslesen ... wenn ich herausbekomm, wie das funktioniert ...
Die einzelnen Tags will ich dann vorerst nur mal über System.out.println("...") ausgeben.

3) XML-Datei über einen DocumentBuilder als ein Document Objekt parsen -->

Code:
Code:
DocumentBuilderFactory factory  = DocumentBuilderFactory.newInstance();
    DocumentBuilder        builder  = factory.newDocumentBuilder();
    Document               document = builder.parse( new File(INFO.XML) );
    NodeList ndList = document.getElementsByTagName("Title"); 
      for( int i=0; i<ndList.getLength(); i++ ){
        System.out.println(ndList.getFirstChild());
      }

Okay, hier bekomme ich wohl eine Liste heraus, mit der ich wohl fortfahren muss.

Ich denke, dass 2) der geschickteste Weg ist. Nur leider kapier ich es nicht ganz, wie ich dem SAXParser sage, was er für mich parsen soll.

mit dem Aufruf parse(datei,handler) sage ich dem Parser über den Handler, wie er mit dem geparsten Text verfahren soll, oder?

Gibts da einfache Besipiele?


Bin ich da überhaupt auf dem richtigen Weg?
Ich möchte in meinem Applet eigentlich nur ein paar Knoten und Attribute aus meiner XML-Datei heraus lesen. ganz einfach. Ich finde aber nur Beispiele mit Applikationen und Handler Klassen ... lauter böhmische Dörfer...


Danke für eure Hilfe ...
 
S

stev.glasow

Gast
Hier gibt es eine kurzes Tutorials zu SAX: http://www.xmlguru.de/html/_d/04buch/buch20_d_kap02-1.htm

Ich persönlich (das muss aber nichts heißen) nutzen immer gern JDOM. Das ist auch recht einfach zu handhaben:
hier eine kleiners Beispiel:
// das Dokument (ist nur ein Beispiel)
Code:
<java-forum>
   <user name="stevg" password="kashdljhlshdfl">
		<postid value="2"/>
		<postid value="4"/>
   </user>
   
   <user name="roro" password="1324jl25234h">
		<postid value="1"/>
		<postid value="3"/>
   </user>
   
   <post id="1" title="Problem mit Dingsbums">
   	Hallo und so
   </post>
   
   <post id="2" title="">
   	BlaBliBlo
   </post>
   
   <post id="3" title="">
   	Danke
   </post>
   
   <post id="3" title="">
   	Bitte
   </post>
   
</java-forum>


// eine Methode um alle Posts eines bestimmten Users auszugegeben
Code:
public void printPostFromUser(String username){
    SAXBuilder saxBuilder = new SAXBuilder();
    Document doc  = saxBuilder.build(new URL("http://www.java-forum.org/example.xml"));
    Element root = doc.getRootElement();
    
    Vector pids = new Vector(); // enthält später die zum user dazu gehörenden Postids
    
    // user im Dukument suchen
    List users = root.getChildren("user");
    Iterator i = users.iterator();
    while(i.hasNext()){ 
    	Element user = (Element)i.next();
    	String name = user.getAttributeValue("name");
    	if(name != null && name.equals("username")){ // user gefunden
    		
    		// postids des users ermittln
    		List postids = user.getChildren("postid");
    		i = postids.iterator();		
    		while(i.hasNext()){
    			Element postid = (Element)i.next();
    			String value = user.getAttributeValue("value");
    			if(value != null){
    				pids.add(value);
    			}
    		}
    		break;
    	}    	
    }
    
    // Posts nach entsprechender id durchsuchen und Title und Inhalt ausgeben
    List posts = root.getChildren("post");
    i = users.iterator();
    while(i.hasNext()){ 
    	Element post = (Element)i.next();
    	String id = post.getAttributeValue("id");
    	if(id != null && pids.contains(id)){
    		String title = post.getAttributeValue("title");
    		id(title != null){
    			System.out.println("Titel: " + title + "\n");
    		}
    		System.out.println("Text:" + post.getText() + "\n"); // mit der getText() bin ich mir nicht ganz sicher
    	}
    }
}
// hab das jetzt nicht getesten, sollte auch nur de Ansatz erklären

Die Ausgabe für printPostFromUser("roro") würde dann in etwa so aussehen:
Title: Problem mit Dingsbums
Text: Hallo und so
Text: Danke
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S XML Document Parsen und Ausgeben mit Suchfunktion XML & JSON 21
L XML Document Transform StackOverflowError XML & JSON 1
B Wie kann man das ecncoding in einem vorhandenen Document-Objekt ändern? XML & JSON 2
M java.lang.RuntimeException: Failed to parse document XML & JSON 4
sylo DOM Document in XML Datei schreiben XML & JSON 5
sambalmueslie JAXB - Unmarshall ein XML-Document das aus zwei XSD Definitionen besteht XML & JSON 8
L invalide xml document parsen?! XML & JSON 2
G Nodes in Document kopieren, nur die Childs, die noch nicht existieren XML & JSON 7
K Document null bei builder.parse XML & JSON 2
B jdom document aus string erzeugen? XML & JSON 1
G document is invalid: no grammar found. XML & JSON 9
M Wie kann ich aus ein Document-Tree ein PDF generieren XML & JSON 2
G Ein DOM-Document dem Sax übergeben? XML & JSON 2
S org.jdom.document in String umwandeln. XML & JSON 2
P Aus einem Node ein Document erstellen XML & JSON 2
R XML Document als String XML & JSON 2
C Kompliziertes XML-Document, wie lese ich es ein? XML & JSON 4
N FileStream auf Document XML & JSON 22
M XPath Problem im Zusammenhang mit document() XML & JSON 2
B XML-Document mit Java erzeugen und zuruecksenden XML & JSON 1
L JSON auslesen und Labels in GUI verwenden XML & JSON 13
M json page 2 auslesen XML & JSON 1
J Auslesen der Länge einer XML-Datei in Android Studio XML & JSON 8
Kanda Sorata Eingabefelder von Excel Dateien auslesen XML & JSON 1
K XML vernünftig auslesen XML & JSON 9
K XML Datei erstellen und Daten daraus in Java auslesen XML & JSON 6
H SOAPBody auslesen XML & JSON 0
B XML auslesen, benötige Hilfe XML & JSON 13
I Liste in YAML Datei speichern und wieder auslesen XML & JSON 1
W XML einlesen und Attribute auslesen XML & JSON 1
A Leeres Array beim Auslesen von XML-Datei XML & JSON 4
M Json auslesen XML & JSON 7
K XML Auslesen, wie abspeichern? XML & JSON 32
D Attribute aus XML Auslesen XML & JSON 5
W Kindelemente mit JDOM eines bestimmten Attributes auslesen XML & JSON 6
R Apache POI: Gezieltes Auslesen von Zellen XML & JSON 2
S XMl auslesen:@ output ? XML & JSON 1
Z Verschachtelte XML auslesen XML & JSON 3
C JDOM: Value ohne Unterelemente auslesen XML & JSON 1
C XPath: Alle Kinder in einer Schleife auslesen XML & JSON 2
I XML IDs auslesen, erst X dann Y XML & JSON 2
S XML - rekursives auslesen - Zeilenumbruch als NodeValue? XML & JSON 3
O XML richtig auslesen XML & JSON 7
Kenan89 XML Tag-ID auslesen mit getElementById XML & JSON 2
J Excel zeilenweise auslesen - POI XML & JSON 5
J Excel Zellen auslesen - automatischer Stopp bei leerer Zelle XML & JSON 2
I XPath Namensräume und auslesen einzelner Knoten XML & JSON 3
S SVG auslesen und darstellen XML & JSON 5
G xpath: in Kindelement zwei Attribut-Werte auslesen XML & JSON 2
G xpath: Inhalt eines Kindelements auslesen XML & JSON 2
1 Html tabelle auslesen??? XML & JSON 6
JanUlrich Tabelle auslesen XML & JSON 2
A XSl mit JDom auslesen XML & JSON 1
J Anzahl der Elemente in einem XML-Dokument auslesen XML & JSON 7
K XMl auslesen XML & JSON 19
P Poi /XSSF : Excel-Tabelle auslesen XML & JSON 2
S XSD-Datei zulässige Werte auslesen XML & JSON 3
D rss auslesen XML & JSON 2
S Attribute von Elementen auslesen mit XPath XML & JSON 2
M Große Datei auslesen/in dieser suchen XML & JSON 2
M RSS-Datei auslesen von Yahoo Webservice XML & JSON 4
N Google Wetter XML (nur current_condition) auslesen mit Java XML & JSON 15
J Dateinamen beim Start auslesen XML & JSON 8
eQuest XML Jaxen Attribute auslesen XML & JSON 2
E XML Datei mit DOM auslesen (Text mit Attributen) XML & JSON 2
P jdom XML-Encoding auslesen XML & JSON 12
H XML Attribute auslesen XML & JSON 5
Nicer Bestimmten Wert aus einer XML Auslesen XML & JSON 34
L XML Daten auslesen und in Tabelle (Array) speichern XML & JSON 1
L XML Dokument auslesen funktioniert nicht richtig XML & JSON 2
C Attributwert aus XML auslesen XML & JSON 10
H XML String auslesen XML & JSON 4
E XML Knoten mit rekursiver Methode auslesen XML & JSON 3
S Dom Baum auslesen XML & JSON 12
J Properties auslesen (Jar) XML & JSON 1
S auslesen XML & JSON 9
Z XML auslesen, Elemente daraus entfernen und als neue XML zurückgeben XML & JSON 2
M XMI-Datei auslesen XML & JSON 4
T EXSD auslesen mit XPath und JDOM XML & JSON 8
M XML-Datum als Referenz auf Objekt-Variable auslesen XML & JSON 5
Spot84 xmi auslesen XML & JSON 20
G Welche Klassen zum erzeugen/auslesen eines XML Files verwend XML & JSON 9
G Xml File schematisch auslesen XML & JSON 2
P NullPointerException beim Auslesen XML & JSON 8
N XML-String in MIDP auslesen XML & JSON 3
H mit JDOM Verarbeitungsanweisungen und Kommentare auslesen XML & JSON 2
K XML auslesen (simpel) XML & JSON 10
X XML File auslesen/parsen u. in ne Hashmap speichern XML & JSON 2
HeRaider Definitionen auslesen und Encoding XML & JSON 3
A SVG Datei auslesen und Batik XML & JSON 1
M XML werte auslesen ! XML & JSON 3
M XML File während Applet-Start auslesen? XML & JSON 10
L SAXReader , auslesen bis zum bestimmten knoten! XML & JSON 3
W XML DomDocument als String auslesen XML & JSON 2
T XML mit JDOM auslesen => langsam? XML & JSON 7
N XML Datei auslesen / Validierung XML & JSON 4
G einzelne tags mit jdom auslesen XML & JSON 4
F XML mit JDOM auslesen XML & JSON 2
N bestimmtes Element auslesen - ich verzweifel XML & JSON 3
A XML-File auslesen, alles leer? XML & JSON 2

Ähnliche Java Themen

Neue Themen


Oben