2011-11-22 1 views
0

Я играл с XML и PHP, у меня есть googled, чтобы получить требование, над которым я работаю, но все же Im не получаю вещи так, как я хотел.Проанализируйте вложенные переменные в XML с помощью PHP

У меня есть XML-файл с вложенными переменными, мне нужно проанализировать такие переменные, как user_id, имя и сохранить его в массиве, чтобы мне пришлось использовать их для изменения сведений в другом файле конфигурации.

Для примера: если пользователь вошел в систему, используя user_id, мне нужно проанализировать все данные конкретного пользователя из файла XML (где хранятся сведения о различных пользователях).

До сих пор я мог только разобрать данные и повторить все это, но не смог найти способ сохранить эту анализируемую информацию.

Это мой test.xml файл:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<document> 
    <user> 
     <user_id>0121</user_id> 
     <name>Tim</name> 
     <file>0121.file</file> 
    </user> 

    <user> 
     <user_id>0178</user_id> 
     <name>Henry</name> 
     <file>0178.file</file> 
    </user> 

    <user> 
     <user_id>0786</user_id> 
     <name>Martin</name> 
     <file>0786.file</file> 
    </user> 

    <user> 
     <user_id>1239</user_id> 
     <name>Jan</name> 
     <file>1239.file</file> 
    </user> 
</document> 

Любая ценная информация будет очень полезна

Благодаря РААКС

+0

@Gordon, спасибо за ответ, но я искал способ хранить тх разобранной информации в массив или переменный, так что я могу использовать эту информацию для обновления другого файла не один и тот же файла XML или другой XML-файл , Надеюсь, ты пойдешь. – 125369

ответ

0

Используйте SimpleXML.

$xml = simplexml_load_file("test.xml"); 
$user = $xml->xpath("user[user_id = $my_user_id]"); 

$name = $user[0]->name; 
$file = $user[0]->file; 
+0

Hi Socha, я следил за вашим советом, и я получаю эту ошибку «Warning: SimpleXMLElement :: xpath() [simplexmlelement.xpath]: Неверное выражение« Любая идея, почему это всплывает – 125369

+0

да, это должно быть одно =, not = знак равно Кроме того, $ user не имеет индекса в последующих вызовах. Я обновил свой ответ, теперь он должен работать. – socha23

+0

Hi Socha, большое спасибо за быструю помощь. Нужно сказать, что последние полчаса пытались выяснить, где лежит ложь. В любом случае спасибо за обновление кода. Теперь все работает хорошо – 125369

Смежные вопросы