PHP строка в допустимый XML-файл

У меня проблема с преобразованием моей строки, имеющей структуру XML, в правильный файл XML.

Моя строка выглядит так:

<product>
<ID>12345</ID>
<NAME></NAME>
</product>
<product>
<ID>123</ID>
<NAME></NAME>
</product>

И так далее. Проблема в том, что я получаю пустой результат, если использую DOM.

$dom = new DomDocument('1.0', 'UTF-8');
$dom->loadXML($products);
$xml = $dom->saveXML($dom);

Выход:

string(39) "<?xml version="1.0" encoding="UTF-8"?>
"

Как я могу сделать эту работу? Или я просто могу добавить html и корневые теги к этой строке и просто разобрать ее в файл?

-1

Решение

Ваш XML не отформатирован должным образом. XML требует корневого элемента.

Если вы измените свой XML на что-то вроде этого:

<products>
<product>
<ID>12345</ID>
<NAME></NAME>
</product>
<product>
<ID>123</ID>
<NAME></NAME>
</product>
</products>

Это должно работать как ожидалось.

Скорректированный код:

<?php
$dom = new DomDocument('1.0', 'UTF-8');
$dom->loadXML('<products>
<product>
<ID>12345</ID>
<NAME></NAME>
</product>
<product>
<ID>123</ID>
<NAME></NAME>
</product>
</products>');
echo $dom->saveXML();

Выходы:

<?xml version="1.0"?>
<products>
<product>
<ID>12345</ID>
<NAME/>
</product>
<product>
<ID>123</ID>
<NAME/>
</product>
</products>
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector