| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/11/2007 11:41:37
|
nett_fan
What is classpath?
Membro desde: 25/10/2007 11:48:29
Mensagens: 8
Offline
|
ola a todos, tenho uma aplicação java que acede aos metodos remotos de um webservice, esses metodos devolvem a informação em xml.
Result = <NewDataSet>
<Table>
<altura>180</altura>
</Table>
<Table>
<altura>180</altura>
</Table>
<Table>
<altura>170</altura>
</Table>
<Table>
<altura>176</altura>
</Table>
<Table>
<altura>188</altura>
</Table>
<Table>
<altura>167</altura>
</Table>
</NewDataSet>
como posso capturar a altura?
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/11/2007 11:42:58
|
Jair Rillo Junior
Moderador
![[Avatar]](/images/avatar/31b3b31a1c2f8a370206f111127c0dbd.jpg)
Membro desde: 29/04/2003 21:19:53
Mensagens: 2524
Localização: São Paulo / Campinas
Offline
|
Dê uma estudada no framework JDOM http://jdom.org/
|
Jair Rillo Junior
http://www.jairrillo.com/blog | Twitter | SCJA, SCJP, SCWCD, SCBCD, IBM SOA Associate |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/11/2007 12:02:49
|
ronybrand
Thread.start()
Membro desde: 28/05/2003 15:54:00
Mensagens: 29
Offline
|
Usa o Xstream é bem mais facil de usar, ele faz o mapeamento direto para POJOs (JavaBeans), Listas:
http://xstream.codehaus.org/
|
Rony Brand
SCJP |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/11/2007 12:59:36
|
nett_fan
What is classpath?
Membro desde: 25/10/2007 11:48:29
Mensagens: 8
Offline
|
segui um tutorial aqui do forum e fiz o seguinte:
import java.io.*;
import java.net.*;
import java.util.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.xml.sax.SAXException;
/**
*
*/
public class Main {
/** Creates a new instance of Main Xenon*/
public Main() {
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
try {
System.out.println("main programa");
LeXml();
} catch (Exception ex) {
// TODO handle custom exceptions here
}
}
//################################################################
private static void LeXml( ) throws SAXException, IOException
{
String pesoAtomico="";
try
{
// Call Web Service Operation
javaapplication15.Periodictable service = new javaapplication15.Periodictable();
javaapplication15.PeriodictableSoap port = service.getPeriodictableSoap();
// TODO initialize WS operation arguments here
java.lang.String elementName = "Xenon";
// TODO process result here
java.lang.String result = port.getAtomicWeight(elementName);
System.out.println("Peso = "+ result);
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(result);
Element elem = doc.getDocumentElement();
NodeList nl = elem.getElementsByTagName("Table");
for( int i=0; i<nl.getLength(); i++ )
{
Element tagTable = (Element) nl.item( i );
// pega os dados cadastrado para o usuario atual
pesoAtomico = getChildTagValue( tagTable, "Altura" );
}
}
catch(Exception ex)
{
}
}
//#################################################################
private static String getChildTagValue( Element elem, String tagName )
{
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();
}
//################################################################
}
do webservice retorna um xml com a seguinte estrutura
<NewDataSet>
<Table>
<Altura>131.3</Altura>
</Table>
</NewDataSet>
tentei correr coloquei um system.out.println() e o problema parece estar nas seguintes linhas de codigo:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(result);
agradecia a vossa ajuda.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/11/2007 13:19:40
|
nett_fan
What is classpath?
Membro desde: 25/10/2007 11:48:29
Mensagens: 8
Offline
|
o erro é na instruçao :
Document doc = db.parse(result);
volto a referir que eu nao leio o conteudo de um ficheiro xml, em result tenho o que é retornado de um a chamada a um metodo remoto de um webservice.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/11/2007 16:10:50
|
nett_fan
What is classpath?
Membro desde: 25/10/2007 11:48:29
Mensagens: 8
Offline
|
será que ninguem me pode ajudar?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/11/2007 16:19:03
|
Jair Rillo Junior
Moderador
![[Avatar]](/images/avatar/31b3b31a1c2f8a370206f111127c0dbd.jpg)
Membro desde: 29/04/2003 21:19:53
Mensagens: 2524
Localização: São Paulo / Campinas
Offline
|
Acho que ninguem vai ficar lendo o seu codigo (ainda mais fora da tag CODE) e tentar adivinhar o erro
Por favor, poste também qual exception ocorre. Alias, tente pesquisar antes sobre a Exception no google, provavelmente você irá encontrar a resposta para o seu problema
|
Jair Rillo Junior
http://www.jairrillo.com/blog | Twitter | SCJA, SCJP, SCWCD, SCBCD, IBM SOA Associate |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/11/2007 16:31:56
|
nett_fan
What is classpath?
Membro desde: 25/10/2007 11:48:29
Mensagens: 8
Offline
|
na instrução ->Document doc = db.parse(result); dá o seguinte erro:
A sintaxe do nome do ficheiro, do nome do directório ou do nome de volume é incorrecta
a variavel result nao tem o caminho para o ficheiro xml , mas sim o resultado de um webservice quem esta em formato xml mas esses dados são guardados numa variavel string result
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/11/2007 16:46:05
|
Jair Rillo Junior
Moderador
![[Avatar]](/images/avatar/31b3b31a1c2f8a370206f111127c0dbd.jpg)
Membro desde: 29/04/2003 21:19:53
Mensagens: 2524
Localização: São Paulo / Campinas
Offline
|
tente usar o JDOM, ele pode fazer o parse de uma variavel String
|
Jair Rillo Junior
http://www.jairrillo.com/blog | Twitter | SCJA, SCJP, SCWCD, SCBCD, IBM SOA Associate |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/11/2007 10:37:05
|
jMacaxera
Entusiasta Java
![[Avatar]](/images/avatar/01bbd8f95cd042e965e53b0a85354bd3.jpg)
Membro desde: 29/11/2007 10:03:22
Mensagens: 20
Localização: Foz do Iguaçu
Offline
|
Uma outra alternativa é utilizar o JAXB. =)
|
|
|
 |
|
|