php - Согласование целевой команды обработки «[xX] [mM] [lL]» недопустимо




2 Answers

marmalad и El Boletaire Underave являются правильными, что вы не можете начать с места, но это не полная история. Согласно спецификации XML , вы не можете ничего иметь перед прологом XML.

Поскольку вы используете объявление XML, вы должны запустить свой файл с помощью

<?xml version="1.0" ...

В некоторых случаях непечатаемые символы, такие как знак порядка байтов (BOM), могут вызвать проблемы, беря первые несколько байтов файла.

Для проблемы, более конкретной для CakePHP, убедитесь, что у вас нет пустых строк / пробелов в начале или конце ваших файлов (т. Е. После вашего ?> Или перед вашим <?php ).

Я выводил XML в CakePHP. Но я получаю эту ошибку, когда я помещаю свой XML в валидатор:

The processing instruction target matching "[xX][mM][lL]" is not allowed.

Я использую правильный XML-макет с <?php echo $this->Xml->header(); ?> <?php echo $this->Xml->header(); ?> вверху, затем <?php echo $content_for_layout; ?> <?php echo $content_for_layout; ?>

Мои результаты:

<?xml version="1.0" encoding="UTF-8" ?><response type='' outcome='true' message='Login successful!'>
    <user id='1234' total_number_of_completed_tasks='0' total_number_of_declined_tasks='0' total_number_of_passed_tasks='1' total_number_of_failed_tasks='1' reputation_points='99' deviant_points='0' />
        <tasks>
            <accepted>
                                <accepted_task id='4' type='Good' time_limit='500' details='Good accepted' />
                                <accepted_task id='5' type='OK' time_limit='660' details='Ok New task' />
                                <accepted_task id='9' type='Excellent' time_limit='2000' details='Great failed task' />
                                <accepted_task id='11' type='Your type' time_limit='222' details='Running and swimming all the way to Japan' />
                                <accepted_task id='7' type='Man' time_limit='744' details='My dirty task' />
                            </accepted>
            <pending>
                                <pending_task id='8' type='Women' time_limit='5151' details='Women new task' sender_id='11111' sent_date='2031-01-01 00:00:00' sender_name='Jae Choi' />
                            </pending>
            <completed>
                            </completed>
            <new>
                                <new_task id='5' type='OK' time_limit='660' details='Ok New task' />
                                <new_task id='8' type='Women' time_limit='5151' details='Women new task' />
                                <new_task id='4' type='Good' time_limit='500' details='Good accepted' />
                                <new_task id='10' type='Hello' time_limit='122' details='What is this?' />
                                <new_task id='3' type='Best' time_limit='880' details='Stop doing work!' />
                                <new_task id='11' type='Your type' time_limit='222' details='Running and swimming all the way to Japan' />
                                <new_task id='6' type='Great' time_limit='553' details='Great accepted task' />
                                <new_task id='7' type='Man' time_limit='744' details='My dirty task' />
                                <new_task id='9' type='Excellent' time_limit='2000' details='Great failed task' />
                            </new>
        </tasks>
</response>

Что-то не так с этим?




Проверьте свой XML-файл, он может начинаться с пробела. Если ваш XML-файл начинается с пробелов, этот тип Exception будет выведен.




Related

php xml cakephp