Salve,
sto leggendo un file xml con Xpath e sto riscontrato qualche problema nella lettura dei nodi che non riesco a spiegare. Veniamo a voi

il file esempio che sto leggendo per fare dei test è il seguente

codice:
<series name="futurama">
    <season id="1">
	<episode>Pilota spaziale 3000</episode>
	<episode>La serie è atterrata</episode>
        <episode>Io, coinquilino</episode>
        <episode>L'amore perduto nello spazio</episode>
        <episode>Paura del pianeta robot</episode>
        <episode>Per un pesce di dollari</episode>
        <episode>I miei tre soli</episode>
        <episode>Palla di immondizia</episode>
        <episode>Un viaggio infernale</episode>
        <episode>Un volo da ricordare</episode>
        <episode>Università marziana</episode>
        <episode>Attacco alieno</episode>
        <episode>Gusto a sorpresa</episode>
    </season>
      <season id="2">
        <episode>Amazzoni in amore</episode>
        <episode>Un parassita perduto</episode>
        <episode>Aiuto, è Natale!</episode>
        <episode>Il quadrifoglio</episode>
        <episode>Pingui-bot di Gel-catraz</episode>
        <episode>Il pizzetto ballerino</episode>
        <episode>Cervello grosso, scarpa fine</episode>
    </season> 
</series>
per la lettura dei file xml sto utilizzando questi metodi

codice:
    private Document createXMLDocument(String fileName) throws Exception {
        DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
        domFactory.setNamespaceAware(true);
        DocumentBuilder builder = domFactory.newDocumentBuilder();
        Document doc = builder.parse(fileName);
 
        return doc;
    }
 
    private NodeList readXMLNodes(Document doc, String xpathExpression) throws Exception {
        XPath xpath = XPathFactory.newInstance().newXPath();
        XPathExpression expr = xpath.compile(xpathExpression);
 
        Object result = expr.evaluate(doc, XPathConstants.NODESET);
        NodeList nodes = (NodeList) result;
 
        return nodes;
    }
 
    public static void main(String[] args) {
    	xml m = new xml();
        Document doc;
        NodeList nodes = null;
		try {

			doc = m.createXMLDocument("src/file.xml");

			nodes = m.readXMLNodes(doc, "//series/season[@id='1']");
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			System.out.println("nodo non esistente");
		}

		System.out.println(nodes.item(0).getChildNodes().item(0).getTextContent());
		//System.out.println(nodes.item(0).getChildNodes().getLength());

}
come si può vedere dalla path mi sto spostando su series e sulla season 1.
Guardando l'xml i nodi presenti nella season 1 sono 13 ma se faccio un prinln di nodes.item(0).getChildNodes().getLength() ne trova 27.
Se invece voglio stamparmi il contenuto di un nodo presente su season 1 faccio nodes.item(0).getChildNodes().item(0).getTextConte nt() però non stampa nulla, se faccio nodes.item(0).getChildNodes().item(1).getTextConte nt() stampa il contenuto del primo nodo cioè Pilota spaziale 3000... noto che non vi è alcuna progressione, se provo a stampare l'item(2) non stampa nulla, con item(3) ottengo il secondo nodo e cosi via... c'è questa alternanza... qualcuno riesce a spiegarmi dove sbaglio??