Ler Atributos de Nós Filhos e Netos em xml

Caros,

Estou com alguns problemas pra o seguinte casos, tenho um XML de exemplo

<lista>
    <negocio>
        <preco>43.5</preco>
        <quantidade>1000</quantidade>
        <data id_data="15/05/2012">
            <time id_time="16:10">
                <hora>primeira</hora>
                <dia>2</dia>
            </time>
        </data>
    </negocio>
    <negocio>
        <preco>44.1</preco>
        <quantidade>700</quantidade>
          <data id_data="16/05/2012">
            <time id_time="16:20">
                 <hora>segunda</hora>
                <dia>2</dia>
            </time>
        </data>
    </negocio>
    <negocio>
        <preco>42.3</preco>
        <quantidade>1200</quantidade>
          <data id_data="17/05/2012">
            <time id_time="16:11">
                <hora>terceira</hora>
                <dia>2</dia>
            </time>
        </data>
    </negocio>
</lista>

e estou lendo ele no java com da seguinte maneira:

//Classe que imita o XML
public class ListaNegocio {
	public double preco;
	public int qtd;
	public long time;
	public int hora;
	public int dia;
	String data;
	String texto;
	
	public ListaNegocio(double preco, int qtd, int hora, int dia, String data, String texto)
	{
		this.preco = preco;
		this.qtd = qtd;
		//this.time = time;
		this.hora = hora;
		this.dia = dia;
		this.data = data;
		this.texto = texto;
	}
	
}
public class ListaNegocioLer {
	private String xmlPathname;
	
	//Construtor que seta o caminho XML
	public ListaNegocioLer (String path){
		xmlPathname = path;
	}
	
	//le o XML carregando os dados dos usuários em um Vector.  
	//retorna o vector contendo os usuários cadastrados no XML.  
	public Vector lerNegocios() throws Exception {  
	    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();  
	    DocumentBuilder db = dbf.newDocumentBuilder();  
	    Document doc = db.parse( xmlPathname );  
	    Element elem = doc.getDocumentElement();  
	    // pega todos os elementos usuario do XML  
	    NodeList nl = elem.getElementsByTagName( "negocio" );  
	    // prepara o vetor      
	    Vector negocios = new Vector();
	    for( int i=0; i<nl.getLength(); i++ ) {  
	        Element tagNegocio = (Element) nl.item( i );  
	       
	        // pega os dados cadastrado para o usuario atual  
                //Aqui eu tento pegar os atributos de um filho e neto, e não consigo.
	        String time_id = tagNegocio.getAttribute("id_time");
	        String data_id = tagNegocio.getAttribute("data_id");
                //Fim da tentativa
	        double preco = Double.parseDouble(getChildTagValue(tagNegocio, "preco"));
	        int qtd = Integer.parseInt(getChildTagValue(tagNegocio, "quantidade"));
	        int hora = Integer.parseInt(getChildTagValue(tagNegocio, "hora"));
	        int dia = Integer.parseInt(getChildTagValue(tagNegocio, "dia"));
	       
	        
	        // cria uma nova instancia do UsuarioGuj com os dados do xml  
	        ListaNegocio listaNegocio = new ListaNegocio(preco, qtd, hora, dia, data_id, time_id);  
	       
	        // adiciona o usuario na coleção (vector) de usuários do guj  
	        negocios.addElement( listaNegocio );  
	    }  
	     
	    return negocios;  
	}

    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();  
    }  
}

E agora por ultimo a classe que chama tudo acima.

package leitor;

import java.util.Vector;  

public class CadastroNegocio {


    public CadastroNegocio() {  
    try {  
        // informe o caminho correto do seu arquivo xml  
    	ListaNegocioLer reader = new ListaNegocioLer( "C:\\teste.xml" );  
      
        Vector negocios = reader.lerNegocios();  
      
        
        // imprime na tela os usuarios cadastrados      
        for( int i=0; i<negocios.size(); i++ ) {  
            ListaNegocio usuario = (ListaNegocio) negocios.get( i );  
        
            System.out.println( "Preço: " + usuario.preco );  
            System.out.println( "quantidade: " + usuario.qtd );  
            System.out.println( "hora: " + usuario.hora );
            System.out.println( "dia: " + usuario.dia );
            System.out.println( "data: " + usuario.data );
            System.out.println( "time: " + usuario.texto );
            
            
        }  
    } catch( Exception e ) {  
        e.printStackTrace();  
    }  
}  
    
    public static void main( String[] args ) {  
        new CadastroNegocio();  
    }  
}

Quem conhece o site viu q eu segui o tutorial do desse link http://www.guj.com.br/articles/22

Mas o que eu preciso é pegar os atributos id_data e id_time também e isso eu não estou conseguindo, alguém tem alguma ideia?

Eu também preciso exatamente disso