2010-01-15 5 views
1

J'ai cherché tout sur google et encore je ne peux pas trouver une solution pour cela. Fondamentalement im aider mon ami à créer une interface php pour son ftp.PHP & XML analyse

Les détails ftp sont sauvegardés en XML. Donc je dois l'analyser à un php.

<FileZillaServer> 
<Users> 
<User Name="anonymous"> 
<Option Name="Pass">aaaaaa</Option> 
<Option Name="Group"/> 
<Option Name="Bypass server userlimit">0</Option> 
<Option Name="User Limit">0</Option> 
<Option Name="IP Limit">0</Option> 
<Option Name="Enabled">1</Option> 
<Option Name="Comments"/> 
<Option Name="ForceSsl">0</Option> 
<IpFilter> 
<Disallowed/> 
<Allowed/> 
</IpFilter> 
<Permissions> 
<Permission Dir="C:\xampp\anonymous"> 
<Option Name="FileRead">1</Option> 
<Option Name="FileWrite">0</Option> 
<Option Name="FileDelete">0</Option> 
<Option Name="FileAppend">0</Option> 
<Option Name="DirCreate">0</Option> 
<Option Name="DirDelete">0</Option> 
<Option Name="DirList">1</Option> 
<Option Name="DirSubdirs">0</Option> 
<Option Name="IsHome">1</Option> 
<Option Name="AutoCreate">0</Option> 
</Permission> 
<Permission Dir="C:\xampp\anonymous\incoming"> 
<Option Name="FileRead">1</Option> 
<Option Name="FileWrite">1</Option> 
<Option Name="FileDelete">0</Option> 
<Option Name="FileAppend">0</Option> 
<Option Name="DirCreate">0</Option> 
<Option Name="DirDelete">0</Option> 
<Option Name="DirList">1</Option> 
<Option Name="DirSubdirs">0</Option> 
<Option Name="IsHome">0</Option> 
<Option Name="AutoCreate">0</Option> 
</Permission> 
</Permissions> 
<SpeedLimits DlType="0" DlLimit="10" ServerDlLimitBypass="0" UlType="0" UlLimit="10" ServerUlLimitBypass="0"> 
<Download/> 
<Upload/> 
</SpeedLimits> 
</User> 
</Users> 
</FileZillaServer> 

Fondamentalement ci-dessus est un exemple de contenu de XML. J'ai besoin de savoir comment analyser le contenu et afficher en PHP.

Juste pour afficher Nom et passe.

Merci

Répondre

2
$xml = "your xml string"; 
$xml_object = simplexml_load_string($xml); 

ou

$xml_file = "path/to/file"; 
$xml_object = simplexml_load_file($xml_file); 

Lire sur l'accès aux données via l'objet XML résultant ici: http://www.php.net/manual/en/book.simplexml.php

5

Il y a plusieurs modules de traitement XML PHP que vous pouvez utiliser . DOMDocument est une bonne chose si vous traitez avec XML valide, que vous semblez être.

Le code suivant analysera votre document et affichera le nom d'utilisateur et le mot de passe trouvés dans chaque balise <User>.

$doc = new DOMDocument(); 
$doc->load('test.xml'); 
$userNodes = $doc->getElementsByTagName('Users'); 
foreach($userNodes as $user) { 
    foreach($user->childNodes as $userData) { 
    if ($userData->nodeName == 'User') { 
     echo "User name: "; 
     echo $userData->attributes->getNamedItem('Name')->nodeValue; 
     foreach($userData->childNodes as $n) { 
     if ($n->nodeName == 'Option' && $n->attributes->getNamedItem('Name')->nodeValue == 'Pass') { 
      echo " Password: ".$n->nodeValue."\n"; 
      break; 
     } 
     } 
    } 
    } 
} 
2

Vous pouvez utiliser ce code simple pour extraire vos valeurs.

$xml = simplexml_load_string(file_get_contents('xml.xml')); 

//now extract all the variables are extracted below 
$i = 0; 

foreach($xml->Users->User as $key=>$myuser) { 
    echo 'Name: '.$myuser->Name.'<br />'; 
}