Atributos de atributos XML / XStream

Boa tarde forum.
Alguém por gentileza poderia me ajudar com o seguinte caso?

Desejo recuperar, com o XStream, atributos de atributos XML. Exemplo:

<individuos>
 <individuo data="03/05/2007" img="mt" origem="MT">
  <nome>Frodo</nome> 
  <mae>Froda</mae> 
  <pai>Aragorn</pai> 
  <sexo>M</sexo> 
 </individuo>
</individuos>

Como faço para recuperar os atributos ‘data’, ‘img’ e ‘origem’ do atributo ‘individuo’ ??? Até agora só sei como recuperar nome, mae, pai, etc…

Desde já agradeço aguma ajuda.
Vlw[]´s

http://www.guj.com.br/posts/list/33647.java

Utilize DocumentBuilder, padronize o PARSER do seu XML:

Imports:

import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; import org.w3c.dom.*;

Exemplo básico:

[code] DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();

         docBuilderFactory.setValidating(false);
         DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
         docBuilderFactory.setExpandEntityReferences(true);
         docBuilderFactory.setIgnoringElementContentWhitespace(true);
         
         doc = docBuilder.parse (new File(xmlInputfile));
         doc.getDocumentElement().normalize(); [/code]

Exemplo leitura de atributos:

Pegando as Tags e Nós de filhos

NodeList nodeList = doc.getElementsByTagName("nome_da_tag"); Node nodeRegistro = nodeList.item(0); NodeList listRegistro = nodeRegistro.getChildNodes();

Pegando o elemento

Element elm = (Element)itemNode;

Pegando o Atributo do elemento ( aí tem o que voce quer… )

elm.getAttribute("nomedoatributoque voce quer")

Abraços!

Beleza cara valeu msm, só uma dúvida, no caso quem são as variáveis doc, xmlInputfile e itemNode?
Isso que vc fez é usando jaxb?
Já clareou, mas ainda tá um pouco confuso, se puder postar algum outro exemplo seria show, obrigado pela ajuda!

Fala, eu queria so saber se o exemplo que você postou era com jaxb, pois parece ser bem mais simples do que com XStream.
Mas no site do XStream tem um tuto sobre como pegar esses atributos, e eu acabei conseguindo fazer do jeito que eles ensinam, mas é meio chato a princípio você entender como funciona o Conversor, depois q vc saca isso também fica + tranquilo.

XStream Alias Tuto

Abraços, vlw a ajuda aí.

doc é um objeto do tipo Document, ele é o XML após feito o parser.
o método abaixo é um exemplo de como fazer “transformação” :

[code]
/**
* Traz documento a partir de um caminho especificado, contendo XML
* @param caminho
* @return
* @throws Exception
*/
public Document getDocument(String xmlInputfile) throws Exception{

	 Document doc = null;
	 try {
		
         DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
    
         docBuilderFactory.setValidating(false);
         DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
         docBuilderFactory.setExpandEntityReferences(true);
         docBuilderFactory.setIgnoringElementContentWhitespace(true);
         
         doc = docBuilder.parse (new File(xmlInputfile));
         doc.getDocumentElement().normalize(); 
         
	 } catch (Exception exc) {
		 throw exc;
	 }
     return doc;
	
}[/code]

para pegar os valores voce usa o exemplo que postei antes.

xmlInputFile = é uma String, caminho do arquivo que vc irá fazer o parser, ex: “c:\teste\teste.xml”

itemNode é um Node, objeto retirado de um NodeList, segue exemplo:

[code]NodeList nodeList =doc.getElementsByTagName(“nome_de_uma_tag”);
Node nodeDaTag = nodeList.item(0); ( esse é um “itemNode” da tag de cima, na posição 0 da lista )

NodeList list = nodeRegistro.getChildNodes();
Node itemNode = list.item(1); ( mais um item do NodeList agora na posição 1 )[/code]

Caso queira usar, de uma olhada nesses 2 link’s sobre JAXB, no segundo tem downloads :

http://java.sun.com/developer/technicalArticles/WebServices/jaxb/