Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera, estou precisando puxar dados de um arquivo XML para o meu site.
O problema, é que eu preciso filtrar os dados, assim como usar o "LIKE" do mysql. Buscar tal campo, só se tiver uma palavra correspondente no xml.
Alguém pode dar uma luz ai?
Última tentativa:
<?php
$registro = simplexml_load_string($livro->asXML());
# executa uma consulta XPath e armazena em $busca
$busca = $registro->xpath('//tipodesc[//hospedagem]');
# verificando se houve alguma busca com sucesso
if($busca){
# exibindo os resultados encontrados
echo $livro->titulo . "<br>";
echo $livro->descricao . "<br>";
echo $livro->precoreal . "<br><br>";
}
}
?>Boa tarde JoaoGusmao você conseguiu resolver esta questão? Estou com um problema pareceido, será que teria mais umas dicas para dar?
No meu caso estou usando 3 campos Montadoras, Modelos, Ano, está ficando assim:
Só que não estou conseguindo fazer o filtro, estou testando somente no modelos por enquanto.
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Documento sem título</title>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
</head>
<body>
<form id="formLogin" class="form-signin" action="" method="post">
<table width="500" border="0" align="center" cellpadding="2" cellspacing="2">
<tr>
<td colspan="2" align="center">Exemplo usado Upinside</td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td>Montadora:</td>
<td>
<label for="montadora"></label>
<select name="montadora" id="montadora">
<option name="" selected="selected">Selecione Montadora</option>
<?php
$xml = simplexml_load_file("xmls/montadoras.xml");
foreach($xml->montadora as $montadora):
$codigoMon = $montadora->codigo;
$nomeMon = $montadora->nome;
?>
<option value="<?php echo $codigoMon; ?>"><?php echo $nomeMon; ?></option>
<?php
endforeach;
?>
</select></td>
</tr>
<tr>
<td>Modelo:</td>
<td>
<label for="modelo"></label>
<select name="modelo" id="modelo">
<option value="0">Aguardando Montadora</option>
<?php
$xml_1 = simplexml_load_file("xmls/modelos.xml");
foreach($xml_1->xpath('//modelo') as $modelo):
$row = simplexml_load_string($modelo->asXML());
$ln = $row->xpath('//codigo_mon[$_POST[montadora]]');
if($ln):
$codigoMod = $modelo->codigo;
$codigoMon = $modelo->codigo_mon;
$nomeMod = $modelo->nome;
?>
<option value="<?php echo $codigoMod; ?>"><?php echo $nomeMod; ?></option>
<?php
endif;
endforeach;
?>
</select>
</td>
</tr>
<tr>
<td>Ano:</td>
<td>
<label for="ano"></label>
<select name="ano" id="ano">
<option value="0">Aguardando Modelo</option>
<?php
$xml_2 = simplexml_load_file("xmls/modelosxanos.xml");
foreach($xml_2->ano as $ano):
$codigoAno = $ano->codigo;
$codigoMod = $ano->codigo_mod;
$nomeAno = $ano->nome;
?>
<option value="<?php echo $codigoAno; ?>"><?php echo $nomeAno; ?></option>
<?php
endforeach;
?>
</select>
</td>
</tr>
<tr>
<td>Placa:</td>
<td><label for="placa"></label>
<input type="text" name="placa" id="placa"></td>
</tr>
<tr>
<td> </td>
<td>
<input type="submit" name="send" id="send" value="Próximo">
</td>
</tr>
</table>
<hr>
</form>
<table width="500" border="0" align="center" cellpadding="2" cellspacing="2">
<tr>
<td>
<?php
if(isset($_POST['send'])):
echo $_POST['montadora'].'<br>';
echo $_POST['modelo'].'<br>';
echo $_POST['ano'].'<br>';
echo $_POST['placa'].'<br>';
endif;
?>
</td>
</tr>
</table>
<?php
ob_end_flush();
?>
</body>
</html>montadoras.xml
<?xml version="1.0" encoding="utf-8"?>
<montadoras>
<montadora>
<codigo>1</codigo>
<nome>GM - General Motors</nome>
</montadora>
<montadora>
<codigo>2</codigo>
<nome>VW - Volkswagem</nome>
</montadora>
<montadora>
<codigo>3</codigo>
<nome>Fiat</nome>
</montadora>
<montadora>
<codigo>4</codigo>
<nome>Ford</nome>
</montadora>
</montadoras>
modelos.xml
<?xml version="1.0" encoding="utf-8"?>
<modelos>
<modelo>
<codigo>1</codigo>
<codigo_mon>1</codigo_mon>
<nome>Astra</nome>
</modelo>
<modelo>
<codigo>2</codigo>
<codigo_mon>2</codigo_mon>
<nome>Gol</nome>
</modelo>
<modelo>
<codigo>3</codigo>
<codigo_mon>3</codigo_mon>
<nome>Palio</nome>
</modelo>
<modelo>
<codigo>4</codigo>
<codigo_mon>4</codigo_mon>
<nome>Escort</nome>
</modelo>
</modelos>
modelosxanos.xml
<?xml version="1.0" encoding="utf-8"?>
<anos>
<ano>
<codigo>1</codigo>
<codigo_mod>1</codigo_mod>
<nome>2010 Gasolina</nome>
</ano>
<ano>
<codigo>2</codigo>
<codigo_mod>1</codigo_mod>
<nome>2010 Alcool</nome>
</ano>
<ano>
<codigo>3</codigo>
<codigo_mod>2</codigo_mod>
<nome>2011 Gasolina</nome>
</ano>
<ano>
<codigo>4</codigo>
<codigo_mod>3</codigo_mod>
<nome>2012 Gasolina</nome>
</ano>
</anos>
Eu utilizaria FilterIterator da SPL.