Горячая проверка, если значение для определенного узла в XML существует или нет

XML загружается в файл с именем loadxml

<?xml version="1.0”?>
<GetUserProfileResponse>
  <User>
    <UserID>sonishopcom</UserID>
  </User>
  <User>
    <UserID>guru</UserID>
  </User>
</GetUserProfileResponse>

Я застрял с простым запросом.

Я хочу проверить в php, существует ли конкретное значение элемента или нет в выражении if() Как, например, UserID sonishopcom, мне нужно проверить.

 $userID = 'test';
 $datta = simplexml_load_file('loadxml');

2 ответа

Я использую массив для сохранения значения узла, а затем использую in_array() для поиска. Это кажется очень эффективным вариантом убийства, но я не могу найти способ поиска значения элемента XML.

Прежде всего, то, что вы вставили, не является действительным документом XML, так как корень XML </GetUserProfileResponse> вместо <GetUserProfileResponse>

Если это действительно так:

$data = simplexml_load_file('loadxml');
if(isset($data[0]->User->UserID)) { echo "UserID is set"; }

Выше будет возвращаться, если установлен первый идентификатор пользователя.

Другие вопросы по тегам