База данных на simpleXML в PHP

200
01 октября 2018, 19:20

Пишу код для создания базы данных в xml файле.

$xml = new DomDocument('1.0', 'utf-8'); 
$xml->load("users.xml"); 
$users_xml = $xml->appendChild($xml->createElement('users')); 
$user_xml = $users_xml->appendChild($xml->createElement('user')); 
$login_xml = $user_xml->appendChild($xml->createElement('login')); 
$password_xml = $user_xml->appendChild($xml->createElement('password')); 
$email_xml = $user_xml->appendChild($xml->createElement('email')); 
$name_xml = $user_xml->appendChild($xml->createElement('name')); 

$login_xml->appendChild($xml->createTextNode("$login")); 
$password_xml->appendChild($xml->createTextNode("$password")); 
$email_xml->appendChild($xml->createTextNode("$email")); 
$name_xml->appendChild($xml->createTextNode("$name")); 
$xml->formatOutput = true; 
$xml->save('users.xml');

Он записывает в xml следующее

<users>
<user>
<login>23333s</login>
<password>u4h3f7h4387hfqp5f4dcc3b5aa765d61d8327deb882cf99</password>
<email>33333s</email>
<name>43333s</name>
</user>
</users>

Проблемы две. Первая - как сделать так что бы все добавлялось в корневой элемент - я так понимаю к нему надо обратиться и в него записывать все остальное. Как? Вторая - даже при таком раскладе текст выше записывается корректно два раза, а третий все перезатирает, при этотм выводится Warning: DOMDocument::load() [domdocument.load]: Extra content at the end of the document in file:///Z:/home/localhost/www/manao/registration/users.xml, line: 10

Answer 1

Проблема в том что Вы постоянно создаёте ветку в самом документе а не обращаетесь к ней

Нужно поменять строчку

$users_xml = $xml->appendChild($xml->createElement('users'));

На

$users_xml = $xml->getElementsByTagName('users')->item(0); 
READ ALSO
Построение селекта ACF

Построение селекта ACF

ЗдравтсвуйтеЗадача: Построить мультиселект с опцией добавления к нему значений юзером

175
Вывод функций по порядку

Вывод функций по порядку

Есть функции которые отвечают за вывод определенного контентаТакже у них есть свой id, который отвечает за порядок их расположения друг от друга

170
Подмена значения в массиве

Подмена значения в массиве

Возможно ли в php реализовать подмену значения в массиве? Есть два массива с идентичными ключами, но с разными значениямиК примеру если ключ...

184