Lendo um XML atravez de um parser

Galera to com um problema, como eu coloca essa parte do codigo em inputStream, ta comentado alguem pode tirar essa duvida.

[code]public class LeitorXMLTeste {

/**  
 * @param args  
 */   
public static void main(String[] args) {   
    SAXParser parser=null;   
    try {   
        parser= SAXParserFactory.newInstance().newSAXParser();   
    } catch (ParserConfigurationException e) {   
        e.printStackTrace();   
    } catch (SAXException e) {   
        e.printStackTrace();   
    }   

    File file=new File("D:\\workspace\\Teste\\src\\produto.xml");   
    if(parser!=null){   
        InputSource input=new InputSource(file.getAbsolutePath());//aqui vc pode passar o seu inputStream como parametro   
        try {   
            LeitorXML leitor= new LeitorXML();   
            parser.parse(input,new JColtraneXMLHandler(leitor));   
            Produto p=leitor.getProduto();   
            System.out.println("nome: "+p.getNome());   
            System.out.println("preço: "+p.getPreco());   
            System.out.println("descricao: "+p.getDescricao());   
        } catch (SAXException e) {   
            e.printStackTrace();   
        } catch (IOException e) {   
            e.printStackTrace();   
        }   
    }   

}   

} [/code]

Galera eu queria modificar esse codigo de enver dele ler o xml, de um arquivo que esta na minha maquina ele possa ler o xml de vem de uma url ? alquem poderia me ajudar. ?

alquem pode ajudar =[

cara se o xml estiver no mesmo path que sua classe vc pode fazer o seguinte:

InputSource input=new InputSource(LeitorXMLTeste.class.getResourceAsStream("produto.xml"));

Bom ela esta numa url, tenho que passar essa url como parametro em vez do arquivo em si.

vc pode usar o httpclient da apache fazer down do arquivo e fazer um bufferreader ou aldo similar.

código para pegar um arquivo via http e fazer o input dele…
vc pode jogar o InputStreamReader direto no teu InputSource sem problemas.

[code]private InputStreamReader getList(String url) {
HttpClient client = new HttpClient();

	HttpMethod method = new GetMethod(url);

	int statusCode = 0;

	try {
		statusCode = client.executeMethod(method);

		if (statusCode == 200) {
			return new InputStreamReader(method.getResponseBodyAsStream());
		} else {
			System.err.println("URL: " + url);
			System.err.println("statusCode: " + statusCode);
		}
	} catch (Exception e) {
		System.err.println("Erro: " + e.getMessage());
		System.err.println("URL: " + url);
		System.err.println("statusCode: " + statusCode);
	}
	method.releaseConnection();
	return null;
}[/code]

POW EU REESCREVI ESSE CODIGO DA MESMA FORMA PARA VER SE CONSEGUIA TER ALGU EM MÃO
MAS DEU UNS ERROS…
CLARO MESMO DEPOIS DE IMPORTANDO A BIBLIOTECAS DESEJADAS…
ALGUEM PODE ME AJUDAR NESSA PARTE

view plaincopy to clipboardprint?

  1. public class LeitorXMLTeste {
  2. /**   
    
  3.  * @param args   
    
  4.  */     
    
  5. public static void main(String[] args) {     
    
  6.     SAXParser parser=null;     
    
  7.     try {     
    
  8.         parser= SAXParserFactory.newInstance().newSAXParser();     
    
  9.     } catch (ParserConfigurationException e) {     
    
  10.         e.printStackTrace();     
    
  11.     } catch (SAXException e) {     
    
  12.         e.printStackTrace();     
    
  13.     }     
    
  14.     File file=new File("D:\\workspace\\Teste\\src\\produto.xml");     
    
  15.     if(parser!=null){     
    
  16.         InputSource input=new InputSource(file.getAbsolutePath());//aqui vc pode passar o seu inputStream como parametro     
    
  17.         try {     
    
  18.             LeitorXML leitor= new LeitorXML();     
    
  19.             parser.parse(input,new JColtraneXMLHandler(leitor));     
    
  20.             Produto p=leitor.getProduto();     
    
  21.             System.out.println("nome: "+p.getNome());     
    
  22.             System.out.println("preço: "+p.getPreco());     
    
  23.             System.out.println("descricao: "+p.getDescricao());     
    
  24.         } catch (SAXException e) {     
    
  25.             e.printStackTrace();     
    
  26.         } catch (IOException e) {     
    
  27.             e.printStackTrace();     
    
  28.         }     
    
  29.     }     
    
  30. }     
    
  31. }