我在CakePHP中输出XML.但是当我将XML放入验证器时,我遇到了这个错误:
The processing instruction target matching "[xX][mM][lL]" is not allowed.
Run Code Online (Sandbox Code Playgroud)
我<?php echo $this->Xml->header(); ?> 在顶部使用正确的XML布局<?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>
Run Code Online (Sandbox Code Playgroud)
这有什么不对吗?
Pop*_*ops 66
marmalad和El Boletaire Underave是对的,你不能从一个空间开始,但这不是完整的故事.根据XML规范,在XML序言之前你根本就没有任何东西.
由于您使用的是XML声明,因此必须使用以下命令启动文件
<?xml version="1.0" ...
Run Code Online (Sandbox Code Playgroud)
在某些情况下,字节顺序标记(BOM)等非打印字符可能会占用文件的前几个字节而导致麻烦.
对于CakePHP更具体的问题,请检查文件的开头或结尾是否有空行/空格(即在您?>之前或之后<?php).