使用php从xml显示数据

时间:2015-07-06 09:09:42

标签: php xml

我想通过php从xml代码中获取并显示一些值。 因此,当我删除应答器“基座”时,我可以显示我想要的东西,但我必须把这个应答器放到几个“桌子”。
这是我的xml:

<?xml version="1.0" encoding="UTF-8"?>


<base>  
<table nom="analyse">
    <champs>
        <nom>id_analyse</nom>
        <decription>Identifiant de l'analyse</decription>
        <type>Char</type>
        <type_entree>Obligatoire</type_entree>
    </champs>

    <champs>
        <nom>id_zp</nom>
        <decription>Identifiant de la zone de prélèvement</decription>
        <type>Char</type>
        <type_entree>Obligatoire</type_entree>
    </champs>

    <champs>
        <nom>id_essai</nom>
        <decription>Identifiant de l'essai</decription>
        <type>Char</type>
        <type_entree>Obligatoire</type_entree>
    </champs>

    <champs>
        <nom>id_traitement</nom>
        <decription>Identifiant du traitement</decription>
        <type>Char</type>
        <type_entree>Facultatif</type_entree>
    </champs>

    <champs>
        <nom>code_traitement</nom>
        <decription>Code_traitement</decription>
        <type>Char</type>
        <type_entree>Facultatif</type_entree>
    </champs>
</table>

<table name="bloc">
    <champs>
        <nom>id_bloc</nom>
        <decription>Identifiant du bloc</decription>
        <type>Char</type>
        <type_entree>Obligatoire</type_entree>
    </champs>

    <champs>
        <nom>bloc</nom>
        <decription>Nom du bloc</decription>
        <type>Char</type>
        <type_entree>Facultatif</type_entree>
    </champs>

    <champs>
        <nom>id_essai</nom>
        <decription>Identifiant de l'essai</decription>
        <type>Char</type>
        <type_entree>Obligatoire</type_entree>
    </champs>
</table>
</base>

这是我的PHP代码:

  <?php
  $fichier = 'arbre_xml_BDD.xml';
  $xml = simplexml_load_file($fichier);

  foreach($xml as $champs){
      echo $champs->nom.'</br>';
      echo $champs->decription.'</br>';
      echo $champs->type.'</br>';
      echo $champs->type_entree.'</br>';
      echo'</br>';

  }
  ?>

请帮帮我!

1 个答案:

答案 0 :(得分:4)

你需要做另一个foreach声明,你的第一个只围绕桌子而不是冠军,请看下面:

<?php
$fichier = 'arbre_xml_BDD.xml';
$xml = simplexml_load_file($fichier);

foreach ($xml as $table) { // Loop around each <table> element
    foreach ($table as $champs) { // Loop around each sub child (champs) of <table> parent
        echo $champs->nom.'</br>';
        echo $champs->decription.'</br>';
        echo $champs->type.'</br>';
        echo $champs->type_entree.'</br>';
        echo'</br>';
    }
}
?>