不允许匹配“[xX][mM][lL]”的处理指令目标[重复]

Posted

技术标签:

【中文标题】不允许匹配“[xX][mM][lL]”的处理指令目标[重复]【英文标题】:The processing instruction target matching "[xX][mM][lL]" is not allowed [duplicate] 【发布时间】:2011-12-17 20:58:00 【问题描述】:

我在 Cakephp 中输​​出 XML。但是当我将 XML 放入验证器时出现此错误:

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

我使用正确的 XML 布局,顶部是 <?php echo $this->Xml->header(); ?>,然后是 <?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 开头没有任何空格? 【参考方案1】:

marmalad 和 El Boletaire Underave 是正确的,您不能从空格开始,但这还不是全部。根据the XML spec 的说法,在 XML 序言之前你什么都没有。

由于您使用的是 XML 声明,因此您的文件必须以

开头
<?xml version="1.0" ...

在某些情况下,the byte order mark (BOM) 等非打印字符会占用文件的前几个字节,从而导致问题。

对于更具体的 CakePHP 问题,请检查您的文件开头或结尾处没有杂散的空白行/空格(即在您的 ?&gt; 之后或在您的 &lt;?php 之前)。

【讨论】:

【参考方案2】:

作为El Boletaire Underave said,检查生成的XML是否在开头没有任何空格。 这对我的 xml 有帮助。

【讨论】:

【参考方案3】:

检查您的 XML 文件,它可能以空格开头。如果您的 XML 文件以空格开头,则会抛出这种类型的异常。

【讨论】:

【参考方案4】:

&lt;?xml ?&gt;tag 之前你不应该有任何空格。 这个标签应该在第一行。 这对我有用

【讨论】:

以上是关于不允许匹配“[xX][mM][lL]”的处理指令目标[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Maven 发布插件:不允许匹配“[xX][mM][lL]”的处理指令目标

“[致命错误]:1:120:不允许匹配“[xX][mM][lL]”的处理指令目标。” [复制]

不允许有匹配 "[xX][mM][lL]" 的处理指令目标

配置文件报错:不允许有匹配 [xX][mM][lL] 的处理指令目标。

配置文件报错:不允许有匹配 [xX][mM][lL] 的处理指令目标。

不允许有匹配 “[xX][mM][lL]“ 的处理指