Jump to content


Photo

Dúvida Com Busca Em Arquivo Xml Utilizando Simplexml


  • Faça o login para participar
2 replies to this topic

#1 icarorfm

icarorfm

    Turista

  • Usuários
  • 49 posts
  • Sexo:Masculino

Posted 04/05/2011, 09:30

Pessoal, tenho um arquivo xml gerado pelo sistema de folha de pagamento aqui da empresa. Preciso disponibilizar na intranet os contra-cheques.

A busca de informações será feita por cpf, no arquivo xml. Isso teria q ser feito usando apenas php e xml, sem utilizar um b.d.

Por conta da estrutura do xml, só estou conseguindo exibir as informações do nó dados-pessoais.

Minha dúvida: Mantendo a estrutura atual do arquivo xml, tenho como trazer todas as informações do nó servidor, fazendo a busca por cpf?

Segue abaixo o trecho do código do arquivo php e do xml:

PHP:

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

$parametro = "11111111111"; /nesta variável será armazenado o CPF do funcionário p/ q seja realizada a busca

foreach($xml->xpath('//Funcionarios/Servidor/Dados-Pessoais') as $dpessoais) // aqui, ao informar apenas "Funcionarios/Servidor/" me retorna um erro
{

$registro = simplexml_load_string($dpessoais->asXML());
$busca = $registro->xpath('//CNPF[. ="'.$parametro.'"]');
if($busca){
echo $dpessoais->NOME . "<br>";
echo $dpessoais->RG . "<br>";
echo $dpessoais->CNPF . "<br><br>";
}
}


XML:

<?xml version="1.0" ?>
<Contra-Cheque>
<Funcionarios>
<Servidor>
<Dados-Pessoais>
<NOME>xxxxxxxxx</NOME>
<CNPF>11111111111</CNPF>
<RG>00000000</RG>
</Dados-Pessoais>
<Remuneracoes>
<Eventos>
<CODIGO>1</CODIGO>
<NOME>SALARIO BASE</NOME>
<REFERENCIA>30</REFERENCIA>
<VALOR>800</VALOR>
</Eventos>
<Eventos>
<CODIGO>998</CODIGO>
<NOME>PREVIDENCIA SOCIAL</NOME>
<REFERENCIA>11</REFERENCIA>
<VALOR>405,86</VALOR>
</Eventos>
</Remuneracoes>
<Rodape>
<VLR_VENCIMENTO>8300</VLR_VENCIMENTO>
<VLR_DESCONTO>1718,21</VLR_DESCONTO>
<SALARIO_BASE>8300</SALARIO_BASE>
<INSS>3689,66</INSS>
<BASE_IR>7291,38</BASE_IR>
<QTD_IR>4</QTD_IR>
<ALIQUOTA_IR>27,5</ALIQUOTA_IR>
</Rodape>
</Servidor>
</Funcionarios>
</Contra-Cheque>

Edição feita por: icarorfm, 04/05/2011, 09:32.

Ícaro Monteiro

#2 Diego Bezerra

Diego Bezerra

    Diego Bezerra

  • Moderadores
  • 938 posts
  • Sexo:Masculino
  • Localidade:Amazonas
  • Interesses:Iniciando no C# com MSSQL.

Posted 04/05/2011, 09:57

olha este artigo ai acho que pode te ajudar

http://www.troywolf..../php/class_xml/
Att.
Diego Bezerra
Agência Kernel - em Breve
Email/msn: diegobezerra@outlook.com
Facebook

#3 icarorfm

icarorfm

    Turista

  • Usuários
  • 49 posts
  • Sexo:Masculino

Posted 04/05/2011, 16:17

olha este artigo ai acho que pode te ajudar

http://www.troywolf..../php/class_xml/



Muito bom o artigo. Porém não me ajudou...

Creio que o problema seja na estrutura do xml... Como não posso modificá-lo (é gerado automaticamente pelo sistema), preciso encontrar uma solução para acessar os dados relacionados ao CPF do Funcionário...
Ícaro Monteiro




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq