2010-12-02 10 views
0

J'essaie de trier une liste de bases de données et de documents dans chaque base de données par le nom de base de données. Ensuite, imprimez-les dans un format déposéTri simple XML basé sur le nom

ici est ici xml

<responsedata> 
<databases> 
<database> 
<name>Test</name> 
<documents>0</documents> 
</database> 
− 
<database> 
<name>Test2</name> 
<documents>0</documents> 
</database> 
</databases> 
</responsedata> 

est mon code actuel qui répertorie les bases de données et des documents sans le genre et les imprimer dans une liste.

$request_url = "http://255.255.255.255/xmlfile"; 

$xml = simplexml_load_file($request_url) 

foreach ($xml->responsedata->databases->database as $db) { 

      echo"<tr><td>",$db->name,"</td><td>",$db->documents,"</td></tr>\n"; 
    } 

//

+0

'' –

Répondre

2
$dbs = array(); 

foreach ($xml->responsedata->databases->database as $db) { 
    $dbs[(string)$db->name] = $db; 
} 

ksort($dbs); 

foreach ($dbs as $db) { 
    echo"<tr><td>",htmlentities($db->name),"</td>", 
     "<td>",htmlentities($db->documents),"</td></tr>\n"; 
} 
+0

Il n'y a pas de sortie peut-être quelque chose de mal avec dbs $ et $ db? – Bucabear

+0

@Bucabear: Voir le code changé. Vous devez explicitement lancer '$ db' (qui est de type' SimpleXMLElement') en chaîne ou PHP n'acceptera pas l'index du tableau. – Tomalak

+0

Parfait! Merci beaucoup :) – Bucabear