Olá, faço estágio na Secretária de Saúde da cidade a qual habito e me deparei com a seguinte situação: O Ministério da Saúde oferece uns 20 programas diferentes, os quais exatamente servem para fazer pequenas consultas e atualizar dados para o Ministério, mas quando há a necessidade, por exemplo, saber quem são e onde moram, os idosos ou hipertensos do munícipio, bom, tenha certeza que terá muito trabalho... Mas descobri que o carro-chefe dos programas o CadSus exporta seus dados para XML, bom isso ajuda a descobrir por exemplo, que são e onde moram as crianças e idosos, mas para isso preciso fazer o cálculo da idade e isso não aparece, posto o código abaixo:
Exemplo de XML: a qual coloquei dados fictícios da família Silva Alegria, mas a estrutura do XML é a mesma.
Question
Ishiai
Olá, faço estágio na Secretária de Saúde da cidade a qual habito e me deparei com a seguinte situação: O Ministério da Saúde oferece uns 20 programas diferentes, os quais exatamente servem para fazer pequenas consultas e atualizar dados para o Ministério, mas quando há a necessidade, por exemplo, saber quem são e onde moram, os idosos ou hipertensos do munícipio, bom, tenha certeza que terá muito trabalho... Mas descobri que o carro-chefe dos programas o CadSus exporta seus dados para XML, bom isso ajuda a descobrir por exemplo, que são e onde moram as crianças e idosos, mas para isso preciso fazer o cálculo da idade e isso não aparece, posto o código abaixo:
Exemplo de XML: a qual coloquei dados fictícios da família Silva Alegria, mas a estrutura do XML é a mesma.
<?xml version="1.0" encoding="ISO-8859-1"?>
<CADASTROS>
<ENDERECO CO_MUNICIPIO="000000" CO_TIPO_LOGRADOURO="472" NO_LOGRADOURO="Rua Tal" NU_LOGRADOURO="S/N" NO_COMPL_LOGRADOURO="" NO_BAIRRO="MACHADINHO" CO_CEP="000000-000" NU_DDD="" NU_TELEFONE="" DS_USO_MUNICIPAL="" NU_DDD_FAX="" NU_FAX="" DT_OPERACAO="06/12/2002 00:00:00" NU_VERSAO="10001" CO_ORIGEM="010" ST_CONTROLE="I" ST_EXCLUIDO="0" ST_ATIVO="1" FL_ERROS="" ST_JA_RETORNOU="1" >
<USUARIO NO_USUARIO="MARIAZINHA DA SILVA ALEGRIA" DT_NASCIMENTO="04/09/1971" CO_MUNICIPIO_NASC="410490" NO_MAE="MANOELA DA SILVA ALEGRIA" NO_PAI="SALVIANO DA SILVA ALEGRIA" ST_PROFISSIONAL="0" ST_FREQUENTA_ESCOLA="" DS_FREQUENTA_ESCOLA="" DS_EMAIL="" DS_USO_MUNICIPAL="" CO_RACA="1" DS_RACA="" CO_ESTADO_CIVIL="9" DS_ESTADO_CIVIL="" CO_SITUACAO_FAMILIAR="9" DS_SITUACAO_FAMILIAR="" CO_PAIS="010" DS_PAIS="" CO_SGRP_CBO="XXX" CO_ESCOLARIDADE="99" DS_ESCOLARIDADE="" NU_DDD="" NU_TELEFONE="" NU_DDD_2="" NU_TELEFONE_2="" CO_SEXO="F" DS_SEXO="" DT_INCLUSAO="21/09/2006 11:39:53" DT_PREENCHIMENTO_FORM="06/12/2002" CO_MUNICIPIO_RESIDENCIA="411940" ST_SEM_DOCUMENTO="0" NU_USUARIO_NO_DOMICILIO="1" ST_CONTROLE="I" ST_EXCLUIDO="0" DT_OPERACAO="17/02/2011 14:35:32" NU_VERSAO="10001" CO_LOTE="" CO_DOMICILIO="" ST_VIVO="1" FL_ERROS="" ST_CONFIRMACAO_HOMONIMO="0" ST_ENVIO_CEF="0" />
</ENDERECO>
</CADASTROS>
Abaixo o código PHP que utilizei o DOM para "puxar" os dados do XML:
<?php
$dom = new DOMDocument();
$dom->load('teste.xml');
function geratempo(){
$data = date('d/m/Y');
$data_inicial = $datanasc;
$data_final = $data;
//Cria uma funcao que retorna o timestamp de uma data no formato DD/MM/AAAA
function geraTimestamp($data){
$partes = explode('/', $data);
return mktime(0, 0, 0, $partes[1], $partes[0], $partes[2]);
}
// Usa a funcao criada e pega o timestamp das duas datas:
$time_inicial = geraTimestamp($data_inicial);
$time_final = geraTimestamp($data_final);
// Calcula a diferenca de segundos entre as duas datas:
$diferenca = $time_final - $time_inicial;
// Calcula o tempo
$anos = (int)floor($diferenca/(60*60*24*30*12));
return $anos;
}
foreach ($dom->getElementsByTagName('ENDERECO') as $ender){
$lugar = $ender->getAttribute('NO_LOGRADOURO');
$bairro = $ender->getAttribute('NO_BAIRRO');
$numero_casa = $ender->getAttribute('NU_LOGRADOURO');
foreach ($ender->getElementsByTagName('USUARIO') as $pessoas){
$desc = $pessoas->getAttribute('NO_USUARIO');
$datanasc = $pessoas->getAttribute('DT_NASCIMENTO');
echo $desc, ' data de nascimento: ', $datanasc, ' mora no endereco: ', $lugar, ' numero: ', $numero_casa, ' bairro: ', $bairro, ' e possui ', $anos, ' anos.', '<br />';
}
echo "<br />";
}
?>
O meu povo se você puderem me ajudar eu fico muito agradecido, se testarem o código vão perceber que aparece tudo menos os anos das pessoas.
Link to comment
Share on other sites
0 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.