Разбор PHP и XML - PullRequest
       24

Разбор PHP и XML

1 голос
/ 15 января 2010

Я искал все на Google, и все же я не могу найти решение для этого. По сути, я помогаю своему другу создать php-интерфейс для своего ftp.

Детали ftp сохраняются в формате xml. Так что я должен разобрать его с 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>

В основном выше приведен пример содержимого из XML. Мне нужно знать, как анализировать содержимое и отображать в PHP.

Просто чтобы отобразить имя и пароль.

Спасибо

Ответы [ 3 ]

5 голосов
/ 15 января 2010

Существует несколько модулей обработки PHP XML, которые вы можете использовать. DOMDocument - хороший вариант, если вы имеете дело с действительным XML, которым вы кажетесь.

Следующий код проанализирует ваш документ и выведет имя пользователя и пароль, найденные в каждом теге <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 голосов
/ 01 ноября 2012

Вы можете использовать этот простой код для извлечения ваших значений.

$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 />';
}
2 голосов
/ 15 января 2010
$xml = "your xml string";
$xml_object = simplexml_load_string($xml);

или

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

Читайте о доступе к данным через результирующий объект XML здесь: http://www.php.net/manual/en/book.simplexml.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...