使用PHP返回特定的XML子级

时间:2010-02-01 20:25:06

标签: php xml

我有一些XML可以使用,类似这样:

<admin_list>
    <admin>
      <name>user1</name>
      <authentication_source>Local</authentication_source>
    </admin>
    <admin>
      <name>user2</name>
      <authentication_source>Local</authentication_source>
    </admin>
  </admin_list>

我似乎无法检索特定的管理员。以下内容:

  $admin = "user1";
  foreach ($subxml as $child) {
                 if ($child->admin->name == $admin) {
                  var_dump($child);
                  }
             }

返回包含user1和user2的数组。如何输出仅选定用户的XML。 (在这种情况下是user1)所以我想要的输出是:

 <admin>
      <name>user1</name>
      <authentication_source>Local</authentication_source>
 </admin>

谢谢!

1 个答案:

答案 0 :(得分:4)

使用XPATH可能是一个好主意

$query = $simple_xml_resource->xpath('/admin_list/admin[name = "' . $name . '"]');

if(count($query) == 0)
{
    //no users found
}
else
{
    $user = $query[0];
    echo $user->asXML(); //outputs the XML
}