Hallo Zusammen,
ich habe folgenden XML String, woraus ich Werte (Liste mit allen DATEI_IDs) ermitteln muss:
Das ganze mache ich wie folgt:
Also die XPath-Expression ist
Das funktioniert aber nur mit dem Namensraum "xmlns
ptxml", sobald der zweite Namensraum (xmlns) im XML vorhanden ist, werden keine Ergebnisse zurückgegeben.
Meine Frage:
Wie bekomme ich die Expression so hin, dass sie auch bei Angabe beider Namensräume die "DATEI_ID" ermittelt? Die Angabe beider Namensräume muss ich so hinnehmen, da die XML-Datei von einem Fremdsystem geliefert wird.
Kann mir hierzu jemand auf die Sprünge helfen?
Vielen Dank,
Itzamna
ich habe folgenden XML String, woraus ich Werte (Liste mit allen DATEI_IDs) ermitteln muss:
HTML:
<PPT_METADATA xmlns="http://123.45.312.76:8080/ppt.xsd" xmlns:pptxml="http://123.45.312.76:8080/ppt.xsd" version="1.2" ><LISTE><DATEI><DATEI_ID>1</DATEI_ID></DATEI><DATEI><DATEI_ID>2</DATEI_ID></DATEI><DATEI><DATEI_ID>3</DATEI_ID></DATEI></LISTE></PPT_METADATA>
Das ganze mache ich wie folgt:
Java:
Document doc = " ... das XML von oben ... ";
XPathFactory factory = XPathFactory.newInstance();
XPath xpath = factory.newXPath();
XPathExpression expr = xpath.compile("//PPT_METADATA/Liste/*/DATEI_ID/text()");
NodeList nodes = (NodeList)expr.evaluate(doc, XPathConstants.NODESET);
for (int i = 0; nodes.getLength(); i++)
{
Node node = nodes.item(i);
System.out.println(node.getNodeValue);
}
Also die XPath-Expression ist
HTML:
//PPT_METADATA/Liste/*/DATEI_ID/text()
Das funktioniert aber nur mit dem Namensraum "xmlns
Meine Frage:
Wie bekomme ich die Expression so hin, dass sie auch bei Angabe beider Namensräume die "DATEI_ID" ermittelt? Die Angabe beider Namensräume muss ich so hinnehmen, da die XML-Datei von einem Fremdsystem geliefert wird.
Kann mir hierzu jemand auf die Sprünge helfen?
Vielen Dank,
Itzamna