Pessoal estou tentado ler um xml... fiz o código com base em um artigo aqui do guj mesmo, mas o meu xml é um pouco mais complexo... tenho tags "filhas" com os mesmos nomes em tags"pais" diferentes...
+ <principal>
+ <ide>
<cUF>43</cUF>
<xNome>43</xNome>
</ide>
- <emit>
<xNome>XXX S/A</xNome>
- <enderEmit>
<xLgr>RUA MARIANTE</xLgr>
<nro>288</nro>
</enderEmit>
</emit>
- <dest>
<xNome>XXX LTDA</xNome>
- <enderDest>
<xLgr>RUA GOMES CARDIM</xLgr>
<nro>235</nro>
</enderDest>
</dest>
</principal>
Acho q vcs entenderam... por exemplo tenho a tag xNome filha de ide e filha de emit... tenho a tag xLgr filha de enderEmit e enderenderDest...
Como faço para capturar estas tags....
meu código pega como base a tag "principal" e busca os elementos, mas se tem o mesmo nome, não funciona...
meu código
...
{
Element elem = doc.getDocumentElement();
// pega todos os elementos do XML
NodeList nl = elem.getElementsByTagName( "principal" );
Vector vetPrinc = new Vector();
for( int i=0; i<nl.getLength(); i++ ) {
Element elemento = (Element) nl.item( i );
principalBeans principalBeans = new principalBeans ();
principalBeans .setIde_cUF(getChildTagValue( elemento , "cUF" ));
principalBeans .setEmit_xNome(getChildTagValue( elemento , "xNome" ));
// esta tag q repete
principalBeans .setDest_xNome(getChildTagValue( elemento , "xNome" ));
// adiciona na coleção
vetPrinc .addElement( principalBeans );
}
return vetPrinc ;
}
private String getChildTagValue( Element elem, String tagName ) throws Exception {
NodeList children = elem.getElementsByTagName( tagName );
if( children == null ) return null;
Element child = (Element) children.item(0);
if( child == null ) return null;
return child.getFirstChild().getNodeValue();
}
getChildTagValue( tagpai, "xNome" ));
eaí pessoal como faço para resolver este problema?