Ir para conteúdo
Fórum Script Brasil
  • 0

Leitura do XML estranho


matheus.sdo

Pergunta

Bom dia amigos... estou quebrando a cabeça aqui, tenho um XML com a estrutura

<?xml version='1.0' ?>
<meuxml>
    <Alunos>
        <Aluno1>
            <Nome>Carlos</Nome>
            <Idade>19</Idade>
            <Altura>1.58</Altura>
            <Peso>91kg</Peso>
            <ComidaFavorita>Frango</ComidaFavorita>
        </Aluno1>

    </Alunos>
    <Professores>
        <Professor1>
            <Nome>Augusto</Nome>
            <Idade>49</Idade>
            <Altura>1.78</Altura>
            <Peso>65kg</Peso>
            <ComidaFavorita>Capuccino</ComidaFavorita>
        </Professor1>

    </Professores>

</meuxml>

 

E para ler meu XML, fiz o seguinte:

 

$link = "C:/xampp/htdocs/XML/meuxml.xml"; //link do arquivo xml
$arquivo_xml = simplexml_load_file($link); //carrega o arquivo XML e retornando um Array
$contador = 0;
    echo '<pre>';
    //print_r( $arquivo_xml );    
    //Percorrendo todas as tags Matheus (no caso somente 1)
    foreach($arquivo_xml->children() as $meuxml){    
        //percorrendo todas as tags dentro da tag Matheus
        
        foreach($meuxml->children() as $Aluno){
            
            $contador++;
            echo "Nome do aluno   ".$contador." - ".$Aluno->Nome."</br>";
            echo "Idade do aluno  ".$contador." - ".$Aluno->Idade."</br>";
            echo "Peso do aluno   ".$contador." - ".$Aluno->Peso."</br>";
            echo "Altura do aluno ".$contador." - ".$Aluno->Altura."</br>";
            echo "Comida do aluno ".$contador." - ".$Aluno->ComidaFavorita."</br><p>";
        }        
    }

 

A idéia, é ler somente os alunos (depois iria implementar os professores), porém dessa forma, ele lê o meu aluno1, e também lê meu professor1.

Porém não mandei ele percorrer a tag Professores, e não entendi o que aconteceu.

Alguém saberia me explicar o que está acontecendo até aqui ? Depois, pensei em fazer um foreach (fora do $aluno) para ler os professores.

 

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Olá.

O loop deve ser feito assim:

foreach($arquivo_xml->Alunos->children() as $Aluno){
	$contador++;
	echo "Nome do aluno   ".$contador." - ".$Aluno->Nome."</br>";
	echo "Idade do aluno  ".$contador." - ".$Aluno->Idade."</br>";
	echo "Peso do aluno   ".$contador." - ".$Aluno->Peso."</br>";
	echo "Altura do aluno ".$contador." - ".$Aluno->Altura."</br>";
	echo "Comida do aluno ".$contador." - ".$Aluno->ComidaFavorita."</br><p>";
}

 

No caso o código todo ficaria assim:

 

$link = "C:/xampp/htdocs/XML/meuxml.xml";
$arquivo_xml = simplexml_load_file($link);
$contador = ;
echo "<pre>";

foreach($arquivo_xml->Alunos->children() as $Aluno){
	$contador++;
	echo "Nome do aluno   ".$contador." - ".$Aluno->Nome."</br>";
	echo "Idade do aluno  ".$contador." - ".$Aluno->Idade."</br>";
	echo "Peso do aluno   ".$contador." - ".$Aluno->Peso."</br>";
	echo "Altura do aluno ".$contador." - ".$Aluno->Altura."</br>";
	echo "Comida do aluno ".$contador." - ".$Aluno->ComidaFavorita."</br><p>";
}

 

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...