Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

babu

XML no PHP

Recommended Posts

Salve galera,

 

Tenho um código XML de previsão de tempo e quero colocá-lo em minha página PHP, alguém pode me ajudar nesta tarefa?

 

arquivo XML

 

<weather>
−
	<nacional>
−
	<estado nome="BA">
−
	<cidade nome="Alcobaca">
−
	<praia nome="Praia Alcobaça">
<dia1 data="09/04" semana="Quarta" tmin="24ºC" tmax="30ºC" icone="pn" volume="0mm" condicao="Poucas Nuvens" dirvento="ENE" velvento="15km/h" iuv="11" nascente="05h47m" poente="17h29m" umidade="68%" altonda=" 0.8m às 6h" dironda="E  "/>
<dia2 data="10/04" semana="Quinta" tmin="23ºC" tmax="30ºC" icone="nb" volume="0mm" condicao="Nublado" dirvento="ESE" velvento="11km/h" iuv="10" nascente="05h47m" poente="17h28m" umidade="67%" altonda=" 0.8m às 6h" dironda="E  "/>
<dia3 data="11/04" semana="Sexta" tmin="24ºC" tmax="30ºC" icone="pn" volume="0mm" condicao="Poucas Nuvens" dirvento="E" velvento="13km/h" iuv="10" nascente="05h47m" poente="17h28m" umidade="70%" altonda=" 0.8m às 6h" dironda="ESE"/>
<dia4 data="12/04" semana="Sábado" tmin="23ºC" tmax="30ºC" icone="pn" volume="0mm" condicao="Poucas Nuvens" dirvento="NE" velvento="12km/h" iuv="10" nascente="05h47m" poente="17h27m" umidade="82%" altonda=" 0.8m às 6h" dironda="SE "/>
<dia5 data="13/04" semana="Domingo" tmin="24ºC" tmax="30ºC" icone="pn" volume="0mm" condicao="Poucas Nuvens" dirvento="NE" velvento="14km/h" iuv="11" nascente="05h47m" poente="17h26m" umidade="81%" altonda=" 0.8m às 6h" dironda="ESE"/>
<dia6 data="14/04" semana="Segunda" tmin="24ºC" tmax="31ºC" icone="pc" volume="1mm" condicao="Pancadas" dirvento="NE" velvento="15km/h" iuv="11" nascente="05h48m" poente="17h25m" umidade="81%" altonda=" 0.7m às 6h" dironda="E  "/>
<dia7 data="15/04" semana="Terça" tmin="25ºC" tmax="33ºC" icone="pn" volume="0mm" condicao="Poucas Nuvens" dirvento="NNE" velvento="5km/h" iuv="11" nascente="05h48m" poente="17h25m" umidade="80%" altonda=" 0.7m às 6h" dironda="E  "/>
</praia>
</cidade>
</estado>
</weather>

 

ALgúem pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui montar a programação, sendo que nao aparece as informações

 

 

www.kitebahia.com/previsao

 

INDEX.PHP

<?php

class le_xml{
   
	var $parser;
	
	function le_xml() {	  
		$this->parser = xml_parser_create();
		xml_set_element_handler($this->parser, "tags_ini", "tags_fim");
		xml_set_character_data_handler($this->parser, "dados");
	}

	 
	function abre_xml($url){
		// Função que pega a tag aberta xml <>
		function tags_ini($parser, $param) {
		switch($param) {
			
				case "CIDADE":			  
					echo "<table width=100%>";
					echo "<tr bgcolor=#f7f7f7><td align=left>";
					echo "<font face=Arial size=2><b>CIDADE:</b> ";
				break;
				case "PRAIA":
					echo "<table width=100%>";
					echo "<tr bgcolor=#f7f7f7><td align=left>";
					echo "<font face=Arial size=2><b>PRAIA:</b> ";
				break;
				case "DIA1":
					echo "<table width=100%>";
					echo "<tr bgcolor=#f7f7f7><td align=left>";
					echo "<font face=Arial size=2><b>Dia:</b> ";
					echo "<font face=Arial size=2><b>Vento:</b> ";
					echo "<font face=Arial size=2><b>Onda:</b> ";
				break;
				case "DIA2":
					echo "<table width=100%>";
					echo "<tr bgcolor=#f7f7f7><td align=left>";
					echo "<font face=Arial size=2><b>Dia:</b> ";
					echo "<font face=Arial size=2><b>Vento:</b> ";
					echo "<font face=Arial size=2><b>Onda:</b> ";
				break;
				
			}//fim switch
		}//fim função tags_ini
	   
		//função que traz os dados do xml
		function dados($parser, $dados) {
			echo $dados;
		}

		//Função que pega tag fechada xml </>
		function tags_fim($parser, $param) {
			echo "</b></font></td></tr></table>";
		}//fim da funçao tags_fim
		
		//Abre a o aquivo na url para leitura
		if (!($ponteiro = fopen($url, "r"))) {
			die("Não foi possivel abrir o xml");
		} else {
			//Loop de leitura do xml
			while ($dados2 = fread($ponteiro, 4096)) {
				xml_parse($this->parser, $dados2);
			}
			//Limpa o parser da memoria
			xml_parser_free($this->parser);
		}//fim if de abertura do xml
	}//Fim função abre_xml
}//Fim da classe le xml

//abre xml passando seu endereço
$xml_parser = new le_xml();
$xml_parser->abre_xml("agenda.xml");

?>

AGENDA.XML

<?xml version="1.0" encoding="ISO-8859-1" ?>
<weather>
<nacional>
<estado nome="BA">
<cidade nome="Alcobaca">
<praia nome="Praia Alcobaça">
<dia1 data="09/04" semana="Quarta" tmin="24ºC" tmax="30ºC" icone="pn" volume="0mm" condicao="Poucas Nuvens" dirvento="ENE" velvento="15km/h" iuv="11" nascente="05h47m" poente="17h29m" umidade="68%" altonda=" 0.8m às 6h" dironda="E  "/>
<dia2 data="10/04" semana="Quinta" tmin="23ºC" tmax="30ºC" icone="nb" volume="0mm" condicao="Nublado" dirvento="ESE" velvento="11km/h" iuv="10" nascente="05h47m" poente="17h28m" umidade="67%" altonda=" 0.8m às 6h" dironda="E  "/>
<dia3 data="11/04" semana="Sexta" tmin="24ºC" tmax="30ºC" icone="pn" volume="0mm" condicao="Poucas Nuvens" dirvento="E" velvento="13km/h" iuv="10" nascente="05h47m" poente="17h28m" umidade="70%" altonda=" 0.8m às 6h" dironda="ESE"/>
<dia4 data="12/04" semana="Sábado" tmin="23ºC" tmax="30ºC" icone="pn" volume="0mm" condicao="Poucas Nuvens" dirvento="NE" velvento="12km/h" iuv="10" nascente="05h47m" poente="17h27m" umidade="82%" altonda=" 0.8m às 6h" dironda="SE "/>
<dia5 data="13/04" semana="Domingo" tmin="24ºC" tmax="30ºC" icone="pn" volume="0mm" condicao="Poucas Nuvens" dirvento="NE" velvento="14km/h" iuv="11" nascente="05h47m" poente="17h26m" umidade="81%" altonda=" 0.8m às 6h" dironda="ESE"/>
<dia6 data="14/04" semana="Segunda" tmin="24ºC" tmax="31ºC" icone="pc" volume="1mm" condicao="Pancadas" dirvento="NE" velvento="15km/h" iuv="11" nascente="05h48m" poente="17h25m" umidade="81%" altonda=" 0.7m às 6h" dironda="E  "/>
<dia7 data="15/04" semana="Terça" tmin="25ºC" tmax="33ºC" icone="pn" volume="0mm" condicao="Poucas Nuvens" dirvento="NNE" velvento="5km/h" iuv="11" nascente="05h48m" poente="17h25m" umidade="80%" altonda=" 0.7m às 6h" dironda="E  "/>
</praia>
</cidade>
</estado>
<estado nome="BA">
<cidade nome="Valença">
<praia nome="Praia da Ponta do Curral">

<dia1 data="09/04" semana="Quarta" tmin="22ºC" tmax="31ºC" icone="pi" volume="2mm" condicao="Pancadas Isoladas" dirvento="ESE" velvento="18km/h" iuv="11" nascente="05h44m" poente="17h31m" umidade="54%" altonda=" 0.5m às 6h" dironda="ESE"/>
<dia2 data="10/04" semana="Quinta" tmin="20ºC" tmax="29ºC" icone="pi" volume="2mm" condicao="Pancadas Isoladas" dirvento="ESE" velvento="12km/h" iuv="11" nascente="05h44m" poente="17h30m" umidade="66%" altonda=" 0.5m às 6h" dironda="ESE"/>
<dia3 data="11/04" semana="Sexta" tmin="21ºC" tmax="29ºC" icone="pn" volume="0mm" condicao="Poucas Nuvens" dirvento="ESE" velvento="10km/h" iuv="11" nascente="05h44m" poente="17h30m" umidade="85%" altonda=" 0.5m às 6h" dironda="ESE"/>
<dia4 data="12/04" semana="Sábado" tmin="20ºC" tmax="30ºC" icone="pn" volume="0mm" condicao="Poucas Nuvens" dirvento="--" velvento="--" iuv="11" nascente="05h44m" poente="17h29m" umidade="--" altonda=" 0.5m às 6h" dironda="ESE"/>
<dia5 data="13/04" semana="Domingo" tmin="20ºC" tmax="29ºC" icone="pi" volume="3mm" condicao="Pancadas Isoladas" dirvento="E" velvento="10km/h" iuv="11" nascente="05h44m" poente="17h29m" umidade="85%" altonda=" 0.5m às 6h" dironda="ESE"/>
<dia6 data="14/04" semana="Segunda" tmin="21ºC" tmax="31ºC" icone="pn" volume="0mm" condicao="Poucas Nuvens" dirvento="E" velvento="11km/h" iuv="12" nascente="05h44m" poente="17h28m" umidade="83%" altonda=" 0.5m às 6h" dironda="ESE"/>
<dia7 data="15/04" semana="Terça" tmin="19ºC" tmax="33ºC" icone="pn" volume="0mm" condicao="Poucas Nuvens" dirvento="E" velvento="7km/h" iuv="12" nascente="05h44m" poente="17h27m" umidade="75%" altonda=" 0.5m às 6h" dironda="ESE"/>
</praia>
</cidade>
</estado>
</nacional>
</weather>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não precisa usar SAX, o PHP5 tem ferramentas mais adequadas para o que você pretende fazer. Usa a SimpleXML.

http://br.php.net/manual/pt_BR/book.simplexml.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.