php echo xml документы с заголовком

1

PHP-код

<?php
$xml="<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
$xml.="<db_entry id=\"$model->id\" doi=\"$model->identifier\">";
$xml.="<dataset>";
$xml.="</dataset>";
$xml.="</db_entry>";
$xml=preg_replace('/&(?!#?[a-z0-9]+;)/', '&amp;', $xml);
$output= simplexml_load_string($xml);
echo $output->asXML();

когда я запускаю его, он не может отображать XML-формат на веб-странице (отображает весь текст без тэга xml). поэтому я добавляю заголовок(), но он показывает ошибку XML Parsing: XML или текстовое объявление не в начале объекта.

<?php header("Content-type: text/xml"); ?>
<?php
    $xml="<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
    $xml.="<db_entry id=\"$model->id\" doi=\"$model->identifier\">";
    $xml.="<dataset>";
    $xml.="</dataset>";
    $xml.="</db_entry>";
    $xml=preg_replace('/&(?!#?[a-z0-9]+;)/', '&amp;', $xml);
    $output= simplexml_load_string($xml);
    echo $output->asXML();

веб-страница отображается пустой, но в источнике просмотра страницы она показывает

<?xml version="1.0" encoding="UTF-8"?>
<db_entry id="5" doi="110039"><dataset/></db_entry>

и имеет три пустые строки в начале.

  • 0
    Попробуйте повторить $xml и посмотрите, что вы получите.
  • 0
    тот же результат, показывает только текст
Показать ещё 6 комментариев
Теги:

1 ответ

0

Изменить эту область

<?php header("Content-type: text/xml"); ?>
<?php
    $xml="<?xml version=\"1.0\" encoding=\"UTF-8\"?>";

к

<?php 
    header("Content-type: text/xml"); 
    $xml="<?xml version=\"1.0\" encoding=\"UTF-8\"?>";

ПРИЧИНА

Закрывая php в одной строке и снова открывая в следующей строке, вы записываете строку на выход. Как вы знаете, объекты вне <?php?> Будут напрямую печататься в браузере. И согласно правилу XML, вы не можете поместить ничего перед частью <?xml...?>.

  • 0
    все еще имеет ошибку Ошибка синтаксического анализа XML: XML или текстовое объявление не в начале объекта
  • 0
    Убедитесь, что у вас больше ничего нет до <?php и вы не используете тег ?> Прежде чем делать декларацию XML.
Показать ещё 2 комментария

Ещё вопросы

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