Возврат определенного дочернего XML с PHP - PullRequest
0 голосов
/ 01 февраля 2010

У меня есть немного 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 Ответ

4 голосов
/ 01 февраля 2010

Использование 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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...