SimpleXMLElement возвращает странную структуру XML

0

Я довольно долго борюсь с 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();

И я получаю что-то вроде этого:

Изображение 174551

Спасибо за ваше время.

Теги:
simplexml

1 ответ

1
Лучший ответ

Снимок экрана не соответствует примеру вывода. Похоже, что у вас есть несколько документов XML как текст внутри другой структуры XML.

Имейте в виду, что если вы посмотрите на XML как HTML в браузере, вы увидите только текстовое содержимое. В этом случае внутренние документы XML.

Если $values уже содержит XML-документ, вы можете просто echo $values. Здесь нет необходимости загружать его в DOM или SimpleXMLElement, просто для его сериализации.

  • 0
    Дело в том, что даже с простым значением echo $ у меня та же проблема. Похоже, вложенные несколько XML-документов.
  • 0
    Потому что ошибка до этого. $ values уже содержит XML, показанный на скриншоте. SimpleXMLElement не будет изменять XML таким образом: eval.in/296417
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню