Ti ringrazio tanto Lele, non sai che rompicapo mi hai risolto!![]()
La scelta che ho fatto di passare il vector per poi farmelo ritornare modificato è dettata dalla ricorsione della funzione. E' il modo più immediato che mi è venuto in mente per aggirare l'ostacolo, ma forse non il migliore...
Forse sono di troppe pretese, ma c'è un'altra cosa che proprio non capisco e che mi piacerebbe sottoporvi. La funzione:
confronta i valori contenuti in un documento xml verificando che siano ammissibili (ovvero che siano contenuti nel vector "valori" che abbiamo creato prima).codice:private void confronta (Node node, Vector valori) { switch (node.getNodeType()) { case Node.DOCUMENT_NODE: case Node.ELEMENT_NODE: // recurse on each child NodeList nodes = node.getChildNodes(); if (nodes != null) { for (int i=0; i<nodes.getLength(); i++) { confronta(nodes.item(i), valori); } } break; case Node.TEXT_NODE: case Node.CDATA_SECTION_NODE: if (! node.getNodeValue().startsWith("\n") && ! node.getNodeValue().startsWith(" ")){ Struttura struct=new Struttura(node.getParentNode().getParentNode().getNodeName(), node.getParentNode().getNodeName(), node.getNodeValue()); System.out.println(valori.contains(struct)); } break; } }
Usando il metodo contains(Object) ottengo però sempre false. Ho commesso qualche errore nel codice o sbaglio ad usare la funzione?
Grazie ancora.

Rispondi quotando