Ich verwende den folgenden Code, um XML mit XPath abzufragen, das ich von einem Stream bekomme.NULL immer erhalten, wenn XML mit XPath abgefragt wird
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
domFactory.setNamespaceAware(false);
DocumentBuilder builder = domFactory.newDocumentBuilder();
Document doc = builder.parse(inputStream);
inputStream.close();
XPathFactory factory = XPathFactory.newInstance();
XPath xpath = factory.newXPath();
XPathExpression expr = xpath.compile("//FOO_ELEMENT");
Object result = expr.evaluate(doc, XPathConstants.NODESET);
NodeList nodes = (NodeList) result;
for (int i = 0; i < nodes.getLength(); i++) {
System.out.println(nodes.item(i).getNodeValue());
Ich habe den Strom für den Inhalt überprüft, indem es in einen String konvertieren - und es ist alles da - so dass es nicht ist, als ob es keine Daten im Stream ist.
Das nervt mich jetzt gerade - da ich verschiedene Code-Teile ausprobiert habe und immer noch 'Null' in der Zeile "System.out.println" gedruckt werde - was fehlt mir hier?
HINWEIS: Ich möchte den Text innerhalb des Elements sehen.
Meinen Sie, dass System.out.println (nodes.item (i) .getNodeValue()); Gibt "null" aus oder dass Sie eine NullPointerException erhalten? – Eddie
editiert es jetzt klarer zu sein - Prost Eddie. – Vidar