String com XML

5 respostas
F

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!

5 Respostas

J
String xml = //essa String aí
InputSource src = new InputSource(new StringReader(xml));

Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(src);
F
new StringReader(xml)

Era isso que estava falnta… valew Jair.

F

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

Ajuda ai!!!!

J

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

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

Isso ali mesmo…

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

Criado 15 de setembro de 2006
Ultima resposta 19 de set. de 2006
Respostas 5
Participantes 2