Jorge Jr Postado Agosto 27, 2017 Denunciar Share Postado Agosto 27, 2017 (editado) Salve meus prezados, Comecei agora a utilizar XML com PHP é estou com problema para visualizar o conteúdo do XML com vários nós no PHP. São três pacientes com seus exames e resultados, porem a listagem só mostra o primeiro exame para todos os pacientes. CT-0000008502 - ADAO VIANA ALVES - 26/08/2017Exames 47778 - LAB6003864 - CT-0000008502 - CL - CLOROResultado1 - LAB6003864 - CT-0000008502 - CL - 100 - - 96 - 106 mEq/l - mEq/l - - 2 - LAB6003864 - CT-0000008502 - CL - - - Metodo: Colorimetrico - - - Exames 47779 - LAB6003864 - CT-0000008502 - COL - COLESTEROLResultado1 - LAB6003864 - CT-0000008502 - CL - 100 - - 96 - 106 mEq/l - mEq/l - - 2 - LAB6003864 - CT-0000008502 - CL - - - Metodo: Colorimetrico - - - Exames 47781 - LAB6003864 - CT-0000008502 - CRE - CREATININAResultado1 - LAB6003864 - CT-0000008502 - CL - 100 - - 96 - 106 mEq/l - mEq/l - - 2 - LAB6003864 - CT-0000008502 - CL - - - Metodo: Colorimetrico - - - Segue o XML e o arquivo php. Qualquer ajuda será muito bem vinda, estou a uma semana tentando resolver isso. Grato, Jorge <registro> <data>27/08/2017</data> <hora>30/12/1899 09:20:06</hora> <paciente> <codigoint>CT-0000008502</codigoint> <dcadastro>26/08/2017</dcadastro> <nome>ADAO VIANA ALVES</nome> <sexo>M</sexo> <datanasc>15/07/1966</datanasc> <cpaciente>LAB6003864</cpaciente> <dconv>PARTICULAR</dconv> <horario>18:34</horario> <nomedico>DR. ADELINO PANIAGO</nomedico> <codnet>LAB6</codnet> <exames> <controle>47778</controle> <cpaciente>LAB6003864</cpaciente> <codigoint>CT-0000008502</codigoint> <cexame>CL</cexame> <descricao>CLORO</descricao> <longo></longo> <laudoLongo></laudoLongo> <resultados> <cpaciente>LAB6003864</cpaciente> <codigoint>CT-0000008502</codigoint> <data>26/08/2017</data> <cexame>CL</cexame> <controle>1</controle> <resultado>100</resultado> <resultado1></resultado1> <unidade>mEq/l</unidade> <texto></texto> <normal>96 - 106 mEq/l</normal> </resultados> <resultados> <cpaciente>LAB6003864</cpaciente> <codigoint>CT-0000008502</codigoint> <data>26/08/2017</data> <cexame>CL</cexame> <controle>2</controle> <resultado></resultado> <resultado1></resultado1> <unidade></unidade> <texto></texto> <normal>Metodo: Colorimetrico</normal> </resultados> </exames> <exames> <controle>47779</controle> <cpaciente>LAB6003864</cpaciente> <codigoint>CT-0000008502</codigoint> <cexame>COL</cexame> <descricao>COLESTEROL</descricao> <longo></longo> <laudoLongo></laudoLongo> <resultados> <cpaciente>LAB6003864</cpaciente> <codigoint>CT-0000008502</codigoint> <data>26/08/2017</data> <cexame>COL</cexame> <controle>1</controle> <resultado>190</resultado> <resultado1></resultado1> <unidade>mg/dl</unidade> <texto></texto> <normal>Desejavel: menor que 200 mg/dl</normal> </resultados> <resultados> <cpaciente>LAB6003864</cpaciente> <codigoint>CT-0000008502</codigoint> <data>26/08/2017</data> <cexame>COL</cexame> <controle>2</controle> <resultado></resultado> <resultado1></resultado1> <unidade></unidade> <texto></texto> <normal>Metodo: Enz. Trinder</normal> </resultados> </exames> <exames> <controle>47781</controle> <cpaciente>LAB6003864</cpaciente> <codigoint>CT-0000008502</codigoint> <cexame>CRE</cexame> <descricao>CREATININA</descricao> <longo></longo> <laudoLongo></laudoLongo> <resultados> <cpaciente>LAB6003864</cpaciente> <codigoint>CT-0000008502</codigoint> <data>26/08/2017</data> <cexame>CRE</cexame> <controle>1</controle> <resultado>1,1</resultado> <resultado1></resultado1> <unidade>mg/dl</unidade> <texto></texto> <normal>0,5 - 1,2 mg/dl</normal> </resultados> <resultados> <cpaciente>LAB6003864</cpaciente> <codigoint>CT-0000008502</codigoint> <data>26/08/2017</data> <cexame>CRE</cexame> <controle>2</controle> <resultado></resultado> <resultado1></resultado1> <unidade></unidade> <texto></texto> <normal>Metodo: Jaffe Mod.</normal> </resultados> </exames> <exames> <controle>47780</controle> <cpaciente>LAB6003864</cpaciente> <codigoint>CT-0000008502</codigoint> <cexame>URE</cexame> <descricao>UREIA</descricao> <longo></longo> <laudoLongo></laudoLongo> <resultados> <cpaciente>LAB6003864</cpaciente> <codigoint>CT-0000008502</codigoint> <data>26/08/2017</data> <cexame>URE</cexame> <controle>1</controle> <resultado>19</resultado> <resultado1></resultado1> <unidade>mg/dl</unidade> <texto></texto> <normal>15 - 40 mg/dl</normal> </resultados> <resultados> <cpaciente>LAB6003864</cpaciente> <codigoint>CT-0000008502</codigoint> <data>26/08/2017</data> <cexame>URE</cexame> <controle>2</controle> <resultado></resultado> <resultado1></resultado1> <unidade></unidade> <texto></texto> <normal>Metodo: Urease</normal> </resultados> </exames> </paciente> <paciente> <codigoint>CT-0000008504</codigoint> <dcadastro>26/08/2017</dcadastro> <nome>KAELYSON PEREIRA LOPES</nome> <sexo>M</sexo> <datanasc>29/12/2016</datanasc> <cpaciente>LAB6005553</cpaciente> <dconv>PARTICULAR</dconv> <horario>18:37</horario> <nomedico>DR. ADELMO AIRES NEGRE</nomedico> <codnet>LAB6</codnet> <exames> <controle>47789</controle> <cpaciente>LAB6005553</cpaciente> <codigoint>CT-0000008504</codigoint> <cexame>CRE</cexame> <descricao>CREATININA</descricao> <longo></longo> <laudoLongo></laudoLongo> <resultados> <cpaciente>LAB6005553</cpaciente> <codigoint>CT-0000008504</codigoint> <data>26/08/2017</data> <cexame>CRE</cexame> <controle>1</controle> <resultado>1,1</resultado> <resultado1></resultado1> <unidade>mg/dl</unidade> <texto></texto> <normal>0,5 - 1,2 mg/dl</normal> </resultados> <resultados> <cpaciente>LAB6005553</cpaciente> <codigoint>CT-0000008504</codigoint> <data>26/08/2017</data> <cexame>CRE</cexame> <controle>2</controle> <resultado></resultado> <resultado1></resultado1> <unidade></unidade> <texto></texto> <normal>Metodo: Jaffe Mod.</normal> </resultados> </exames> <exames> <controle>47787</controle> <cpaciente>LAB6005553</cpaciente> <codigoint>CT-0000008504</codigoint> <cexame>GLI</cexame> <descricao>GLICEMIA</descricao> <longo></longo> <laudoLongo></laudoLongo> <resultados> <cpaciente>LAB6005553</cpaciente> <codigoint>CT-0000008504</codigoint> <data>26/08/2017</data> <cexame>GLI</cexame> <controle>1</controle> <resultado>110</resultado> <resultado1></resultado1> <unidade>mg/dl</unidade> <texto></texto> <normal>70 -100 mg/dl em jejum.</normal> </resultados> <resultados> <cpaciente>LAB6005553</cpaciente> <codigoint>CT-0000008504</codigoint> <data>26/08/2017</data> <cexame>GLI</cexame> <controle>2</controle> <resultado></resultado> <resultado1></resultado1> <unidade></unidade> <texto></texto> <normal>METODO: Enzimatico</normal> </resultados> </exames> <exames> <controle>47788</controle> <cpaciente>LAB6005553</cpaciente> <codigoint>CT-0000008504</codigoint> <cexame>URE</cexame> <descricao>UREIA</descricao> <longo></longo> <laudoLongo></laudoLongo> <resultados> <cpaciente>LAB6005553</cpaciente> <codigoint>CT-0000008504</codigoint> <data>26/08/2017</data> <cexame>URE</cexame> <controle>1</controle> <resultado>17</resultado> <resultado1></resultado1> <unidade>mg/dl</unidade> <texto></texto> <normal>15 - 40 mg/dl</normal> </resultados> <resultados> <cpaciente>LAB6005553</cpaciente> <codigoint>CT-0000008504</codigoint> <data>26/08/2017</data> <cexame>URE</cexame> <controle>2</controle> <resultado></resultado> <resultado1></resultado1> <unidade></unidade> <texto></texto> <normal>Metodo: Urease</normal> </resultados> </exames> </paciente> <paciente> <codigoint>CT-0000008503</codigoint> <dcadastro>26/08/2017</dcadastro> <nome>MAGDA FERNANDES OLIVEIRA</nome> <sexo>F</sexo> <datanasc>28/06/1976</datanasc> <cpaciente>LAB6002872</cpaciente> <dconv>PARTICULAR</dconv> <horario>18:36</horario> <nomedico>DR. ADELMO AIRES NEGRE</nomedico> <codnet>LAB6</codnet> <exames> <controle>47782</controle> <cpaciente>LAB6002872</cpaciente> <codigoint>CT-0000008503</codigoint> <cexame>COL</cexame> <descricao>COLESTEROL</descricao> <longo></longo> <laudoLongo></laudoLongo> <resultados> <cpaciente>LAB6002872</cpaciente> <codigoint>CT-0000008503</codigoint> <data>26/08/2017</data> <cexame>COL</cexame> <controle>1</controle> <resultado>180</resultado> <resultado1></resultado1> <unidade>mg/dl</unidade> <texto></texto> <normal>Desejavel: menor que 200 mg/dl</normal> </resultados> <resultados> <cpaciente>LAB6002872</cpaciente> <codigoint>CT-0000008503</codigoint> <data>26/08/2017</data> <cexame>COL</cexame> <controle>2</controle> <resultado></resultado> <resultado1></resultado1> <unidade></unidade> <texto></texto> <normal>Metodo: Enz. Trinder</normal> </resultados> </exames> <exames> <controle>47783</controle> <cpaciente>LAB6002872</cpaciente> <codigoint>CT-0000008503</codigoint> <cexame>HDL</cexame> <descricao>COLESTEROL - HDL</descricao> <longo></longo> <laudoLongo></laudoLongo> <resultados> <cpaciente>LAB6002872</cpaciente> <codigoint>CT-0000008503</codigoint> <data>26/08/2017</data> <cexame>HDL</cexame> <controle>1</controle> <resultado>40</resultado> <resultado1></resultado1> <unidade>mg/dl</unidade> <texto></texto> <normal>Menor que 40mg/dl: Baixo</normal> </resultados> <resultados> <cpaciente>LAB6002872</cpaciente> <codigoint>CT-0000008503</codigoint> <data>26/08/2017</data> <cexame>HDL</cexame> <controle>2</controle> <resultado></resultado> <resultado1></resultado1> <unidade></unidade> <texto></texto> <normal>Maior que 60mg/dl: Desejavel</normal> </resultados> <resultados> <cpaciente>LAB6002872</cpaciente> <codigoint>CT-0000008503</codigoint> <data>26/08/2017</data> <cexame>HDL</cexame> <controle>3</controle> <resultado></resultado> <resultado1></resultado1> <unidade></unidade> <texto></texto> <normal>Metodo: Enz. Trinder</normal> </resultados> </exames> <exames> <controle>47785</controle> <cpaciente>LAB6002872</cpaciente> <codigoint>CT-0000008503</codigoint> <cexame>LDL</cexame> <descricao>COLESTEROL - LDL</descricao> <longo></longo> <laudoLongo></laudoLongo> <resultados> <cpaciente>LAB6002872</cpaciente> <codigoint>CT-0000008503</codigoint> <data>26/08/2017</data> <cexame>LDL</cexame> <controle>1</controle> <resultado>100</resultado> <resultado1></resultado1> <unidade>mg/dl</unidade> <texto></texto> <normal>Menor que 100mg/dl: Otimo</normal> </resultados> <resultados> <cpaciente>LAB6002872</cpaciente> <codigoint>CT-0000008503</codigoint> <data>26/08/2017</data> <cexame>LDL</cexame> <controle>2</controle> <resultado></resultado> <resultado1></resultado1> <unidade></unidade> <texto></texto> <normal>100 a 129mg/d: Desejavel</normal> </resultados> <resultados> <cpaciente>LAB6002872</cpaciente> <codigoint>CT-0000008503</codigoint> <data>26/08/2017</data> <cexame>LDL</cexame> <controle>3</controle> <resultado></resultado> <resultado1></resultado1> <unidade></unidade> <texto></texto> <normal></normal> </resultados> <resultados> <cpaciente>LAB6002872</cpaciente> <codigoint>CT-0000008503</codigoint> <data>26/08/2017</data> <cexame>LDL</cexame> <controle>4</controle> <resultado></resultado> <resultado1></resultado1> <unidade></unidade> <texto></texto> <normal>160 a 189mg/dl: Alto</normal> </resultados> <resultados> <cpaciente>LAB6002872</cpaciente> <codigoint>CT-0000008503</codigoint> <data>26/08/2017</data> <cexame>LDL</cexame> <controle>5</controle> <resultado></resultado> <resultado1></resultado1> <unidade></unidade> <texto></texto> <normal>Mai. / Igual a 190mg/dl: Muito Alt</normal> </resultados> </exames> <exames> <controle>47786</controle> <cpaciente>LAB6002872</cpaciente> <codigoint>CT-0000008503</codigoint> <cexame>VLDL</cexame> <descricao>COLESTEROL - VLDL</descricao> <longo></longo> <laudoLongo></laudoLongo> <resultados> <cpaciente>LAB6002872</cpaciente> <codigoint>CT-0000008503</codigoint> <data>26/08/2017</data> <cexame>VLDL</cexame> <controle>1</controle> <resultado>12</resultado> <resultado1></resultado1> <unidade>mg/dl</unidade> <texto></texto> <normal>Menor que 30 mg/dl</normal> </resultados> </exames> <exames> <controle>47784</controle> <cpaciente>LAB6002872</cpaciente> <codigoint>CT-0000008503</codigoint> <cexame>TRI</cexame> <descricao>TRIGLICERIDIOS</descricao> <longo></longo> <laudoLongo></laudoLongo> <resultados> <cpaciente>LAB6002872</cpaciente> <codigoint>CT-0000008503</codigoint> <data>26/08/2017</data> <cexame>TRI</cexame> <controle>1</controle> <resultado>175</resultado> <resultado1></resultado1> <unidade>mg/dl</unidade> <texto></texto> <normal>Menor que 200 mg/dl</normal> </resultados> <resultados> <cpaciente>LAB6002872</cpaciente> <codigoint>CT-0000008503</codigoint> <data>26/08/2017</data> <cexame>TRI</cexame> <controle>2</controle> <resultado></resultado> <resultado1></resultado1> <unidade></unidade> <texto></texto> <normal>Metodo: Enz. Trinder</normal> </resultados> </exames> </paciente> </registro> O arquivo em PHP - envia.php <?php $xml = simplexml_load_file('teste.xml'); foreach($xml->paciente as $paciente) { if(isset($paciente)) { $codigoint = $paciente->codigoint; $nome = $paciente->nome; $dcadastro = $paciente->dcadastro; echo $codigoint .' - '; echo $nome .' - '; echo $dcadastro .'<br>'; foreach($xml->paciente->exames as $exames) { if(isset($exames)) { $controle = $exames->controle; $cpaciente = $exames->cpaciente; $codigoint = $exames->codigoint; $cexame = $exames->cexame; $descricao = $exames->descricao; echo ' Exames <br>'; echo $controle .' - '; echo $cpaciente .' - '; echo $codigoint .' - '; echo $cexame .' - '; echo $descricao .'<br>'; echo 'Resultado<br>'; foreach($xml->paciente->exames->resultados as $resultados) { if(isset($resultados)) { $controle = $resultados->controle; $cpaciente = $resultados->cpaciente; $codigoint = $resultados->codigoint; $cexame = $resultados->cexame; $resultado = $resultados->resultado; $resultado1 = $resultados->resultado1; $normal = $resultados->normal; $unidade = $resultados->unidade; $texto = $resultados->texto; echo $controle.' - '; echo $cpaciente.' - '; echo $codigoint.' - '; echo $cexame.' - '; echo $resultado.' - '; echo $resultado1.' - '; echo $normal.' - '; echo $unidade.' - '; echo $texto.' - '; echo "<br>"; } } } } } } ?> Editado Agosto 27, 2017 por Jorge Jr Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Markus Magnus Postado Agosto 28, 2017 Denunciar Share Postado Agosto 28, 2017 Os foreach estão errados. <?php foreach($xml->paciente as $paciente) { // Essa está certo //... foreach($paciente->exames as $exames) { //... foreach($exames->resultados as $resultados) { //... } } } ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jorge Jr Postado Agosto 28, 2017 Autor Denunciar Share Postado Agosto 28, 2017 1 hora atrás, Markus Magnus disse: Os foreach estão errados. <?php foreach($xml->paciente as $paciente) { // Essa está certo //... foreach($paciente->exames as $exames) { //... foreach($exames->resultados as $resultados) { //... } } } ?> Obrigado Markus, deu certo. Valeu Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Markus Magnus Postado Agosto 28, 2017 Denunciar Share Postado Agosto 28, 2017 Não há de que. Precisando é só chamar. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Jorge Jr
Salve meus prezados,
Comecei agora a utilizar XML com PHP é estou com problema para visualizar o conteúdo do XML com vários nós no PHP.
São três pacientes com seus exames e resultados, porem a listagem só mostra o primeiro exame para todos os pacientes.
CT-0000008502 - ADAO VIANA ALVES - 26/08/2017
Exames
47778 - LAB6003864 - CT-0000008502 - CL - CLORO
Resultado
1 - LAB6003864 - CT-0000008502 - CL - 100 - - 96 - 106 mEq/l - mEq/l - -
2 - LAB6003864 - CT-0000008502 - CL - - - Metodo: Colorimetrico - - -
Exames
47779 - LAB6003864 - CT-0000008502 - COL - COLESTEROL
Resultado
1 - LAB6003864 - CT-0000008502 - CL - 100 - - 96 - 106 mEq/l - mEq/l - -
2 - LAB6003864 - CT-0000008502 - CL - - - Metodo: Colorimetrico - - -
Exames
47781 - LAB6003864 - CT-0000008502 - CRE - CREATININA
Resultado
1 - LAB6003864 - CT-0000008502 - CL - 100 - - 96 - 106 mEq/l - mEq/l - -
2 - LAB6003864 - CT-0000008502 - CL - - - Metodo: Colorimetrico - - -
Segue o XML e o arquivo php. Qualquer ajuda será muito bem vinda, estou a uma semana tentando resolver isso.
Grato,
Jorge
$xml = simplexml_load_file('teste.xml');
foreach($xml->paciente as $paciente)
{
if(isset($paciente))
{
$codigoint = $paciente->codigoint;
$nome = $paciente->nome;
$dcadastro = $paciente->dcadastro;
echo $codigoint .' - ';
echo $nome .' - ';
echo $dcadastro .'<br>';
foreach($xml->paciente->exames as $exames)
{
if(isset($exames))
{
$controle = $exames->controle;
$cpaciente = $exames->cpaciente;
$codigoint = $exames->codigoint;
$cexame = $exames->cexame;
$descricao = $exames->descricao;
echo ' Exames <br>';
echo $controle .' - ';
echo $cpaciente .' - ';
echo $codigoint .' - ';
echo $cexame .' - ';
echo $descricao .'<br>';
echo 'Resultado<br>';
foreach($xml->paciente->exames->resultados as $resultados)
{
if(isset($resultados))
{
$controle = $resultados->controle;
$cpaciente = $resultados->cpaciente;
$codigoint = $resultados->codigoint;
$cexame = $resultados->cexame;
$resultado = $resultados->resultado;
$resultado1 = $resultados->resultado1;
$normal = $resultados->normal;
$unidade = $resultados->unidade;
$texto = $resultados->texto;
echo $controle.' - ';
echo $cpaciente.' - ';
echo $codigoint.' - ';
echo $cexame.' - ';
echo $resultado.' - ';
echo $resultado1.' - ';
echo $normal.' - ';
echo $unidade.' - ';
echo $texto.' - ';
echo "<br>";
}
}
}
}
}
}
?>
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.