PHP和XML解析

1 php xml

我在谷歌搜索了一切,但我似乎无法找到解决方案.基本上我正在帮助我的朋友为他的ftp创建一个php前端.

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>
Run Code Online (Sandbox Code Playgroud)

基本上,上面是XML的示例内容.我需要知道如何解析内容并在PHP中显示.

只是为了显示Name并传递.

谢谢

zom*_*bat 5

您可以使用几种PHP XML处理模块. 如果您正在处理有效的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;
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)