allora.. un altro passo avanti..
non era quella query a generare l'errore.
Ho fatto delle verifiche e lui effettivamente mi tira su il nodo corretto.
il problema dunque viene dopo, quando cerco di raccogliere i figli del nodo raccolto.
in pratica una votla che ho determinato il nodo /batch[@name='SCANIA'] passo
questo nodo ad un altro oggetto xpath per raccogliere altri valori.
ed è qui che lui sembra tirar su i valori del primo nodo "batch".. quello 'CHN'..
la cosa è apparentemente impossibile...
perchè se io gli passo il nodo "batch SCANIA" lui mi tira su i sottoelementi del nodo "batch CHN"?
questo è l'xml completo:
codice:
<batch_factory>
<batch name="CHN">
<package>app.batch.chn</package>
<class>ProcessCHN</class>
<paths>
<path>in</path>
<path>work</path>
<path>save</path>
<path>out</path>
</paths>
<tracciati>
<tracciato>top.xml</tracciato>
<tracciato>detail.xml</tracciato>
</tracciati>
</batch>
<batch name="SCANIA">
<package>app.batch.scania</package>
<class>ProcessSCANIA</class>
<paths>
<path>in</path>
<path>work</path>
<path>save</path>
<path>out</path>
</paths>
<tracciati>
<tracciato>top.xml</tracciato>
<tracciato>detail.xml</tracciato>
</tracciati>
</batch>
</batch_factory>
e questo è il codice che fa l'estrazione:
codice:
String xpath="//batch[@name='SCANIA']";
Node batchNode = XPathAPI.selectSingleNode(doc.getDocumentElement(), xpath);
String className = XPathAPI.selectSingleNode(batchNode, "//class").getFirstChild().getNodeValue();
nella stringa "className" mi troverò "ProcessCHN" invece che "ProcessSCANIA"..
qualuno può dirmi come mai?
come posso correggere?
grazie
citrus