Ir para conteúdo

POWERED BY:

Arquivado

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

Adson aquino

Busca no XML

Recommended Posts

Bom Dia!

 

Estou tentando fazer uma busca em um arquivo xml mais não consigo, tenho o arquivo index.html que tem uma imagem mapeada e o arquivo dados.xml onde estão os dados...

 

Segue o o código da imagem mapeada.

 

<AREA shape="POLYGON" COORDS="57,1,52,1,7,1,7,21,40,21,39,21,38,21,37,22,36,22,35,22,34,22,33,22,32,22,31,22,30,22,29,23,28,23,28,23,27,23,26,24,25,24,24,24,23,24,22,25,21,25,21,25,20,26,19,26,18,26,17,27,17,27,16,27,15,28,14,28,14,28,13,29,12,29,12,30,11,30,10,31,10,31,9,31,9,32,8,32,7,33,7,33,6,34,6,34,5,35,5,35,5,36,4,36,4,37,3,38,3,38,3,39,2,39,2,40,2,40,1,41,1,41,1,42,1,43,1,43,0,44,0,44,0,45,0,45,0,46,0,47,0,47,0,48,0,83,0,84,0,84,0,85,0,86,0,86,0,87,0,87,1,88,1,88,1,89,1,90,1,90,2,91,2,91,2,92,3,92,3,93,3,93,4,94,4,94,5,95,5,95,5,96,6,96,6,97,7,97,7,98,8,98,9,99,9,99,10,100,10,100,11,101,12,101,12,102,13,102,14,102,14,103,15,103,16,104,17,104,17,104,18,105,19,105,20,105,20,106,21,106,22,106,23,107,24,107,25,107,26,107,26,108,27,108,28,108,29,108,30,108,31,109,32,109,33,109,34,109,35,109,36,109,37,109,38,109,39,110,40,110,40,110,41,110,42,110,43,110,44,110,45,110,46,110,47,110,48,110,49,110,50,110,51,109,52,109,53,109,54,109,55,109,56,109,57,109,58,109,59,108,60,108,60,108,61,108,62,108,63,107,64,107,65,107,66,107,67,106,67,106,68,106,69,105,70,105,71,105,71,104,72,104,73,104,74,103,74,103,75,102,76,102,76,102,77,101,78,101,78,100,79,100,80,99,80,99,81,98,81,98,82,97,82,97,83,96,83,96,84,95,84,95,85,94,85,94,85,93,86,93,86,92,86,92,87,91,87,91,87,90,87,90,88,89,88,88,88,88,88,87,88,87,88,86,89,86,89,85,89,84,89,84,89,83,89,48,89,47,89,47,89,46,89,45,88,45,88,44,88,44,88,43,88,43,88,42,87,41,87,41,87,40,87,40,86,39,86,39,86,38,85,38,85,37,85,36,84,36,84,35,83,35,83,34,82,34,82,33,81,33,81,32,80,32,79,31,79,31,78,31,78,30,77,30,76,29,76,29,75,28,74,28,73,28,73,27,72,27,71,27,70,26,70,26,69,26,68,25,67,25,66,25,66,24,65,24,64,24,63,24,62,23,61,23,60,23,59,23,58,22,57,22,57,22,56,22,55,22,54,22,53,22,52,22,51,21,50,21,49,21,52,21,57,21,82,21,82,1,57,1" href="shape15"  target="_top" ALT="Router-IAU" tabindex="1" TITLE="Router-IAU" origTitle="Router-IAU">

 

Aí eu queria fazer o seguinte, ao clicar nesta imagem ela buscar as informações referente a ela lá no xml, indentificado pelo id do shap.

 

Segue o xml.

 

<Shape ID="15" UniqueID="{E98BDCAB-259E-42D6-BE8E-7A8FE3948061}" Name="Sheet.15" NameU="Sheet.15" Master="15">

					<Text>BH 500 70Mpbs/HALF</Text>

					<XForm>

						<PinX Unit="MM">3.494094488188976</PinX>

						<PinY Unit="MM">6.938976377952756</PinY>

					</XForm>

					<LayerMem>

						<LayerMember>2</LayerMember>

					</LayerMem>

					<Prop ID="2" Name="Row_2" NameU="Row_2">

						<Value Unit="STR">BH 500</Value>

						<Label>Rádio</Label>

					</Prop>

					<Prop ID="3" Name="Row_3" NameU="Row_3">

						<Value></Value>

						<Label>Tecnologia</Label>

					</Prop>

					<Prop ID="1" Name="Row_1" NameU="Row_1">

						<Value Unit="STR">HALF</Value>

						<Label>Duplex</Label>

					</Prop>

					<Prop ID="4" Name="Row_4" NameU="Row_4">

						<Value Unit="STR">5.8Ghz</Value>

						<Label>Freqüencia</Label>

					</Prop>

					<Prop ID="5" Name="Row_5" NameU="Row_5">

						<Value Unit="STR">70Mpbs</Value>

						<Label>Velocidade</Label>

					</Prop>

					<Prop ID="6" Name="Row_6" NameU="Row_6">

						<Value></Value>

						<Label>Outros</Label>

					</Prop>

				</Shape>

Quero que pegue esses dados ao clicar e mostre em um popup.

 

Qualquer ajuda será bem vinda, obg.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Adson aquino,

 

Vou mover o tópico para Javascript porque você não precisará de PHP, dá para fazer 100% com jQuery.

 

PHP http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Javascript / DHTML

Compartilhar este post


Link para o post
Compartilhar em outros sites

João Batista Posta aí algo pra ver se consigo aqui, tô enrrolado faz tempo já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tô enrrolado faz tempo já.

 

Bom, nesse caso você já deve ter alguma coisa feita, mostra para gente como você está tentando fazer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou fazendo assim.

 


$xml = simplexml_load_file("data.xml");

foreach ($xml as $item){
    if($item->attributes()->ID == 15){
        foreach ($item->Prop as $prop){
           if($prop->attributes()->ID == 18)
                echo $prop->Label;

           if($prop->attributes()->ID == 18)
                echo $prop->Value;
        }
    }
}

Mais o problema é que tenho que informar o id do <Prop> se não ele não mostra, eu queria colocar só o id do Shape e listaria tudo daquele shap.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Adson aquino,

 

Você possui um map, nesse map uma área clicável referente a uma imagem.

 

Você quer recuperar uma informação desse XML ao clicar na imagem, é isso ?

 

Se for, faça só com Javascript:

 

dados.xml

 

 

<?xml version="1.0" encoding="UTF-8"?>
<shapes>
<shape id="shape15" UniqueID="{E98BDCAB-259E-42D6-BE8E-7A8FE3948061}" name="Sheet.15" nameu="Sheet.15" Master="15">
	<text>BH 500 70Mpbs/HALF</text>
	<xform>
		<PinX Unit="MM">3.494094488188976</PinX>
		<PinY Unit="MM">6.938976377952756</PinY>
	</xform>
	<LayerMem>
		<LayerMember>2</LayerMember>
	</LayerMem>
	<prop id="p2" name="Row_2" nameu="Row_2">
		<value Unit="STR">BH 500</value>
		<label>Rádio</label>
	</prop>
	<prop id="p3" name="Row_3" nameu="Row_3">
		<value></value>
		<label>Tecnologia</label>
	</prop>
	<prop id="p1" name="Row_1" nameu="Row_1">
		<value Unit="STR">HALF</value>
		<label>Duplex</label>
	</prop>
	<prop id="p4" name="Row_4" nameu="Row_4">
		<value Unit="STR">5.8Ghz</value>
		<label>Freqüencia</label>
	</prop>
	<prop id="p5" name="Row_5" nameu="Row_5">
		<value Unit="STR">70Mpbs</value>
		<label>Velocidade</label>
	</prop>
	<prop id="p6" name="Row_6" nameu="Row_6">
		<value></value>
		<label>Outros</label>
	</prop>
</shape>
</shapes>

 

 

 

Seu HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http-~~-//www.w3.org/TR/html4/loose.dtd">
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<title>Shape</title>
	<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
</head>
<body>
	<img src ="images/bad.png" width="86" height="108" alt="Router-IAU" usemap ="#router-iau" />
	<map name="router-iau">
		<area id="shape" shape="poly" coords="57,1,52,1,7,1,7,21,40,21,39,21,38,21,37,22,36,22,35,22,34,22,33,22,32,22,31,22,30,22,29,23,28,23,28,23,27,23,26,24,25,24,24,24,23,24,22,25,21,25,21,25,20,26,19,26,18,26,17,27,17,27,16,27,15,28,14,28,14,28,13,29,12,29,12,30,11,30,10,31,10,31,9,31,9,32,8,32,7,33,7,33,6,34,6,34,5,35,5,35,5,36,4,36,4,37,3,38,3,38,3,39,2,39,2,40,2,40,1,41,1,41,1,42,1,43,1,43,0,44,0,44,0,45,0,45,0,46,0,47,0,47,0,48,0,83,0,84,0,84,0,85,0,86,0,86,0,87,0,87,1,88,1,88,1,89,1,90,1,90,2,91,2,91,2,92,3,92,3,93,3,93,4,94,4,94,5,95,5,95,5,96,6,96,6,97,7,97,7,98,8,98,9,99,9,99,10,100,10,100,11,101,12,101,12,102,13,102,14,102,14,103,15,103,16,104,17,104,17,104,18,105,19,105,20,105,20,106,21,106,22,106,23,107,24,107,25,107,26,107,26,108,27,108,28,108,29,108,30,108,31,109,32,109,33,109,34,109,35,109,36,109,37,109,38,109,39,110,40,110,40,110,41,110,42,110,43,110,44,110,45,110,46,110,47,110,48,110,49,110,50,110,51,109,52,109,53,109,54,109,55,109,56,109,57,109,58,109,59,108,60,108,60,108,61,108,62,108,63,107,64,107,65,107,66,107,67,106,67,106,68,106,69,105,70,105,71,105,71,104,72,104,73,104,74,103,74,103,75,102,76,102,76,102,77,101,78,101,78,100,79,100,80,99,80,99,81,98,81,98,82,97,82,97,83,96,83,96,84,95,84,95,85,94,85,94,85,93,86,93,86,92,86,92,87,91,87,91,87,90,87,90,88,89,88,88,88,88,88,87,88,87,88,86,89,86,89,85,89,84,89,84,89,83,89,48,89,47,89,47,89,46,89,45,88,45,88,44,88,44,88,43,88,43,88,42,87,41,87,41,87,40,87,40,86,39,86,39,86,38,85,38,85,37,85,36,84,36,84,35,83,35,83,34,82,34,82,33,81,33,81,32,80,32,79,31,79,31,78,31,78,30,77,30,76,29,76,29,75,28,74,28,73,28,73,27,72,27,71,27,70,26,70,26,69,26,68,25,67,25,66,25,66,24,65,24,64,24,63,24,62,23,61,23,60,23,59,23,58,22,57,22,57,22,56,22,55,22,54,22,53,22,52,22,51,21,50,21,49,21,52,21,57,21,82,21,82,1,57,1" href="#shape15" target="_top" alt="Router-IAU" tabindex="1" title="Router-IAU" />
	</map>
	<script type="text/javascript">
		var xml;

		function pegaDados( pid ){
			var id		= $(this).attr( 'href' );
			var prop	= $(xml).find( [ id , [ 'prop' , pid ].join( '#' ) ].join( ' ' ) );
			var label	= $(prop).find( 'label' ).text();
			var value	= $(prop).find( 'value' ).text();

			alert( [ [ 'Label' , label ].join( ': ' ) , [ 'Value' , value ].join( ': ' ) ].join( "\n" ) );
		}

		$( function(){
			$.ajax( {
				url			: 'dados.xml',
				dataType	: 'xml',
				success		: function( resp ){
					xml = resp;

					$( 'area' ).click( function(){
						var pid		= 'p2'; //recuperar o nó <prop id="2"></prop>

						pegaDados( pid ); //troque o pid pelo id do nó que você quer pegar
					} );
				}
			} );
		} );
	</script>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

João Batista, valeu pela ajuda, vou tentar aqui fazer como você postou.... Muito obg abraços.

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.