2015-07-06 61 views
3

我想從php的xml代碼中獲取並顯示一些值。 因此,當我刪除應答器「基地」時,我可以顯示我想要的,但我必須讓這個應答器有幾個「表」。
這是我的xml:用xml顯示php的數據

<?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>'; 

    } 
    ?> 

請幫助我!

+0

你靠近,XPath查詢可以幫助你保持最你的代碼:'foreach($ xml-> xpath('/ base/table/champs')爲$ champs){'。 – hakre

回答

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>'; 
    } 
} 
?> 
+1

非常感謝,它的工作原理! – Erlaunis

+0

歡迎您,很高興幫助! :) –