das folgende XML (Beispiel) Gegeben:Auffinden XML-Element überall in dem Dokument mit Java
<?xml version="1.0" encoding="UTF-8"?>
<rsb:VersionInfo xmlns:atom="http://www.w3.org/2005/Atom" xmlns:rsb="http://ws.rsb.de/v2">
<rsb:Variant>Windows</rsb:Variant>
<rsb:Version>10</rsb:Version>
</rsb:VersionInfo>
Ich brauche die Werte von Variant
und Version
zu bekommen. Mein aktueller Ansatz verwendet XPath, da ich mich nicht auf die gegebene Struktur verlassen kann. Ich weiß nur, dass irgendwo im Dokument ein Element rsb:Version
steht.
XPath xpath = XPathFactory.newInstance().newXPath();
String expression = "//Variant";
InputSource inputSource = new InputSource("test.xml");
String result = (String) xpath.evaluate(expression, inputSource, XPathConstants.STRING);
System.out.println(result);
Dies gibt jedoch nichts aus. Ich habe die folgende XPath-Ausdrücke versucht:
- // Variant
- // Variant/text()
- // RSB: Variant
- // RSB: Variant/text()
Was ist der korrekte XPath-Ausdruck? Oder gibt es einen noch einfacheren Weg zu diesem Element?
Die XPathFactory muss mit einem NamespaceContext erstellt werden. Sobald Sie das herausgefunden haben, sollte der XPath "• // rsb: Variant" funktionieren. – JerryM
siehe auch diese Frage. https://stackoverflow.com/questions/2811001/how-to-read-xml-using-xpath-in-java –
Der Kommentar von @JerryM löst meine Frage. –