Я довольно долго борюсь с SimpleXMLElement, и я не могу понять, как выводить хорошо отформатированный XML-документ.
С SQL-запросом я извлекаю некоторые данные в формате XML.
select S_MODELE, S_ID from stock FOR XML RAW ('Product'), ROOT ('Products'), ELEMENTS"
В php у меня есть переменная с $values
, равная этому:
<products>
<product>
<S_MODELE>Some text</S_MODELE>
<S_ID>1</S_ID>
</product>
<product>
<S_MODELE>Some text</S_MODELE>
<S_ID>2</S_ID>
</product>
<product>
<S_MODELE>Some text</S_MODELE>
<S_ID>3</S_ID>
</product>
</products>
Затем я пытаюсь вывести корректно отформатированный XML файл в браузере:
header('Content-Type: text/xml');
$xml = new SimpleXMLElement($values);
echo $xml->asXML();
И я получаю что-то вроде этого:
Спасибо за ваше время.
Снимок экрана не соответствует примеру вывода. Похоже, что у вас есть несколько документов XML как текст внутри другой структуры XML.
Имейте в виду, что если вы посмотрите на XML как HTML в браузере, вы увидите только текстовое содержимое. В этом случае внутренние документы XML.
Если $values
уже содержит XML-документ, вы можете просто echo $values
. Здесь нет необходимости загружать его в DOM или SimpleXMLElement, просто для его сериализации.