問題描述
我在 CakePHP 中輸??出 XML.但是當(dāng)我將 XML 放入驗證器時出現(xiàn)此錯誤:
I'm outputting XML in CakePHP. But I'm getting this error when I put my XML into a validator:
The processing instruction target matching "[xX][mM][lL]" is not allowed.
我在 <?php echo $this->Xml->header(); 中使用了正確的 XML 布局;?>
在頂部然后
I am using correct XML layout with <?php echo $this->Xml->header(); ?>
at the top then <?php echo $content_for_layout; ?>
我的結(jié)果是:
<?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>
這有什么問題嗎?
推薦答案
marmalad 和 El Boletaire Underave 是對的,你不能從一個空格開始,但這不是全部.根據(jù) XML 規(guī)范,您根本無法擁有任何東西在 XML 序言之前.
marmalad and El Boletaire Underave are right that you can't start with a space, but that's not the full story. According to the XML spec, you can't have anything at all before the XML prolog.
由于您使用的是 XML 聲明,因此您的文件必須以
Since you are using an XML declaration, you must start your file with
<?xml version="1.0" ...
在某些情況下,諸如字節(jié)順序標記 (BOM) 之類的非打印字符可能會導(dǎo)致麻煩占用文件的前幾個字節(jié).
In some cases, non-printing characters like the byte order mark (BOM) can cause trouble by taking up the first few bytes of a file.
對于更具體的 CakePHP 問題,請檢查文件的開頭或結(jié)尾處(即在您的 ?>
之后或您之前).
For a problem more specific to CakePHP, check to see that you don't have stray blank lines/whitespace at the start or end of your files (i.e. after your ?>
or before your <?php
).
這篇關(guān)于處理指令目標匹配“[xX][mM][lL]"不被允許的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!