3
Je crois que cela fonctionnait il y a quelque temps mais maintenant xpath renvoie null. Quelqu'un peut-il m'aider à trouver mon erreur stupide dans le code suivant?
Ou je devrai fournir NamespaceContext même après setNamespaceAware (faux)?XPath renvoie null pour xml avec defaultNamespace
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
domFactory.setNamespaceAware(false);
domFactory.setIgnoringComments(true);
domFactory.setIgnoringElementContentWhitespace(true);
try {
Document doc = domFactory.newDocumentBuilder().parse(new File("E:/Temp/test.xml"));
XPath xp = XPathFactory.newInstance().newXPath();
NodeList nl = (NodeList) xp.evaluate("//class", doc, XPathConstants.NODESET);
System.out.println(nl.getLength());
}catch (Exception e){
e.printStackTrace();
}
document XML est ici:
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns="http://www.example.com/schema">
<class />
<class />
</root>
Quand je lance ceci (avec Java 1.6) il imprime "2". –
La variable ici est l'implémentation de l'analyseur par défaut sélectionnée par 'domFactory.newDocumentBuilder() .parse (fichier)'. –
Oh mon Dieu, ça me rend fou. Je suis également en test sous Java 1.6 mais en obtenant 0. Pouvez-vous me donner une idée de ce que je devrais vérifier? – WSK