2010-07-06 7 views
2

Quelqu'un peut-il trouver quel est le problème avec ce code? Il retourne toujours des nœuds o peu importe ce que j'ai choisi XPathCoincé avec XPath

DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance(); 
domFactory.setNamespaceAware(true); 
domFactory.setIgnoringComments(true); 
domFactory.setIgnoringElementContentWhitespace(true); 

DocumentBuilder builder = domFactory.newDocumentBuilder(); 
Document dDoc = builder.parse("P:/MyBooks.xml"); 
NodeList myNodes = (NodeList) xpath.evaluate("//Title", dDoc, XPathConstants.NODESET); 
System.out.println(myNodes.getLength()); 

MyBookx.xml est:

<?xml version="1.0" encoding="UTF-8"?> 
<Books> 
    <Title attrib="title1"/> 
    <Title attrib="title2"/> 
    <Title attrib="title3"/> 
</Books> 
+0

Avez-vous essayé d'imprimer ou d'inspecter autrement 'dDoc' pour vous assurer que vous avez réellement du contenu dedans? De plus, à quoi fait exactement référence 'xpath'? –

+1

J'ai ajouté XPath xpath = XPathFactory.newInstance(). NewXPath(); et votre code fonctionne pour moi :) (imprime 3). –

+0

Merci les gars pour votre soutien mais je faisais une autre chose stupide. Mon document actuel utilisait l'espace de noms par défaut pendant que je définissais NamespaceAware (true) dans docFactory. Maintenant mon problème est résolu – WSK

Répondre

2

je faisais une grosse erreur. Mon document XML utilisait l'espace de noms par défaut pendant que je définissais NamespaceAware (true) dans docFactory. J'ai donc défini NamespaceAware (false) et mon problème est résolu