String com XML

Bom dia pessoal.

Tenho um problema.

Eu executo um WebService e ele me retorna a seguinte String:

<?xml version="1.0" encoding="utf-16"?> <CurrentWeather> <Location>Pirassununga, Brazil (SBYS) 21-59S 047-20W 598M</Location> <Time>Nov 15, 2005 - 05:00 AM EST / 2005.11.15 1000 UTC</Time> <Wind> Calm:0</Wind> <Visibility> greater than 7 mile(s):0</Visibility> <Temperature> 68 F (20 C)</Temperature> <DewPoint> 60 F (16 C)</DewPoint> <RelativeHumidity> 77%</RelativeHumidity> <Pressure> 29.97 in. Hg (1015 hPa)</Pressure> <Status>Success</Status></CurrentWeather>

A principio um XML? NAO??

Mas como que eu faco pra ler isso como XML??

Corri atraz de uns codigos, mas todos se baseiam em abrir um arquivo XML e nao partir de uma String com tags XML!??!

Eae galera que que eu faco, nao queria ter que salvar e abrir novamente o arquivo.

Abraços!

[code]String xml = //essa String aí
InputSource src = new InputSource(new StringReader(xml));

Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(src);[/code]

new StringReader(xml)

Era isso que estava falnta… valew Jair.

hummmm… ainda nao ta indo!!

Alguem poderia me dizer q q ta acontecendo??

O que acontece eu sei. Eu pego o Child TEMPERATURE, por exemplo, mas ele me retorna null no valor desse child. :roll:

Mas por que?

String xml = <?xml version="1.0" encoding="utf-16"?> <CurrentWeather> <Location>Porto Alegre Aero-Porto , Brazil (SBPA) 30-00S 051-11W 3M</Location> <Time>Sep 19, 2006 - 07:38 AM EDT / 2006.09.19 1138 UTC</Time> <Wind> from the NE (050 degrees) at 3 MPH (3 KT):0</Wind> <Visibility> less than 1 mile:0</Visibility> <SkyConditions> obscured</SkyConditions> <Temperature> 60 F (16 C)</Temperature> <DewPoint> 60 F (16 C)</DewPoint> <RelativeHumidity> 100%</RelativeHumidity> <Pressure> 30.03 in. Hg (1017 hPa)</Pressure> <Status>Success</Status> </CurrentWeather>

e o codigo que to usando pra le o xml:

[code]public TesteXML() {
String xml = new Temperatura().getTemperatureByCity("Porto Alegre");

	InputSource is = new InputSource(new StringReader(xml));
	try {
		Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(is);
		NodeList nl = doc.getElementsByTagName("Temperature");
		Node r = nl.item(0);
		System.out.println("TESTE : " + r.getNodeValue());
	} catch (SAXException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	} catch (ParserConfigurationException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}	
}[/code]

Ajuda ai!!!

Está retornando null porque o elemento “Temperature” não tem valor, quem tem valor é o filho dele…

System.out.println("TESTE : " + r.getFirstChild().getNodeValue());

Isso ali mesmo…

Valew… :grin: :grin: :grin: :grin: