PDA

Visualizza versione completa : [Java] Leggere file Xml


GiulioCesare
15-03-2006, 10.37.58
Salve ragazzi, ho un problema nel leggere un file xml con java, purtroppo il mio file xml, ha la caratteristica che ha dei tag che hanno lo stesso nome, quindi quando passo al metodo il nome del tag, lui mi legge il primo che incontra. Per farmi capire meglio, il file xml è così strutturato:

<variabili>
<Titolo>
<p>Prova</p>
</Titolo>
<testo>
<p>Testo</p>
</testo>
</variabili>

Questo invece è il metodo che legge il file xml

public String getElement(String paramname)
{
String retparam = null;
try
{

Element docEle = dom.getDocumentElement();
NodeList nl = docEle.getElementsByTagName(paramname);
Element el = (Element)nl.item(0);
retparam = el.getFirstChild().getNodeValue();
}
catch(Exception e)
{
System.out.println(e.getMessage());
e.printStackTrace();
}
return retparam;
}


Grazie a chi vorrà aiutarmi

Dav82
15-03-2006, 11.48.21
In genere in un file xml è normale che ci siano più elementi con lo stesso tag-name, per esempio:


<libri>
<libro>
...dati libro 1
</libro>
<libro>
...dati libro 2
</libro>

.. ecc con altri libro

</libri>


A quanto ho capito ti serve prendere un particolare elemento fra i tanti che hanno lo stesso nome. Dopo che ti sei creato la NodeList che contiene tutti questi elementi (ovvero quelli che hanno tag-name uguale a quello passato come parametro del metodo), nel tuo codice prendi *solo e unicamente* il primo ((Element)nl.item(0);) mentre dovresti ciclare su tutta la NodeList, cercando proprio l'elemento che ti serve (facendo un test su una determinata caratteristica che lo contraddistingue dagli altri, per esempio).