• Aktualisierte Forenregeln

    Eine kleine Änderung hat es im Bereich Forenregeln unter Abschnitt 2 gegeben, wo wir nun explizit darauf verweisen, dass Forenkommentare in unserer Heftrubrik Leserbriefe landen können.

    Forenregeln


    Vielen Dank

XPath mit Java

klausbyte

Spiele-Kenner/in
Mitglied seit
22.03.2001
Beiträge
3.863
Reaktionspunkte
204
Ich möchte gerne mittels XPath eine XML-Datei einlesen.
Die Datei ist valide und alles, aber ich kriege immer nur das erste Ergebnis. Es gibt mehrere <title>, aber es wird immer nur der erste Ausgegeben in der Datei.

Ich vermute ja ganz Stark, das es an der Art und Weiße liegt wie ich mein Ergebnis ausgebe, denn das Argument //title sollte ja stimmen! Habe jetzt relativ lange gebraucht so weit zu kommen, doch jetzt stehe ich irgendwie vor einer Wand.
Code:
import java.io.FileReader;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathFactory;

import org.w3c.dom.Document;
import org.xml.sax.InputSource;

public class a {

    public static void main(String[] args) {

        try {
            FileReader freader = new FileReader("wochenzeitplan.xml");

            DocumentBuilderFactory docfactory = DocumentBuilderFactory
                    .newInstance();
            DocumentBuilder docbuilder = docfactory.newDocumentBuilder();

            Document docroot = docbuilder.parse(new InputSource(freader));

            XPath xpath = XPathFactory.newInstance().newXPath();
            String result = (String) xpath.evaluate("//title", docroot,
                    XPathConstants.STRING);
            System.out.println(result);

        } catch (Exception eve) {
        }

    }

}
 
ich kenn mich zwar nicht mit java aus, aber könnte der fehler nicht auch in der xml datei sein? kannste mal den xml code posten?
 
OverNord am 22.06.2008 00:19 schrieb:
ich kenn mich zwar nicht mit java aus, aber könnte der fehler nicht auch in der xml datei sein? kannste mal den xml code posten?
Die XML-Datei stimmt, die Anfrage bringt in Stylus Studio (so n XML-Dingens) auch das richtige raus. Aber mein Problem hat sich insofern erledigt, als das ich gar keine Java-Implementierung machen muss. Ich wollte nur so meine Queries überprüfen, aber habe inzwischen das oben genannte Programm gefunden. :)
 
Hi klausbyte,

versuch doch mal statt
Code:
XPathConstants.STRING
Code:
XPathConstants.NODESET
zu verwenden.

Also statt
Code:
String result = (String) xpath.evaluate("//title", docroot, XPathConstants.STRING);
Code:
NodeList result = (NodeList) xpath.evaluate("//title", docroot, XPathConstants.NODESET);
zu verwenden.

Dann musst du "nur" noch die zurückgegedene NodeList verarbeiten.

Ciao,
LasiX
 
Dahingehend hatte ich schon experimentiert, wusste nur nicht genau auf was das dann zu casten ist. Vielen Dank! Wenn ich es nun doch noch implementieren muss, weiß ich wie =) .
 
Zurück