这个错误,

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

每当我运行以如下开头的XSLT页面时,都会发生这种情况:

<?xml version="1.0" encoding="windows-1256"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:include href="../header.xsl"/>
  <xsl:template match="/">
    <xsl:call-template name="pstyle"/>
    <xsl:call-template name="Validation"/>
    <xsl:variable name="strLang">
      <xsl:value-of select="//lang"/>
    </xsl:variable>
    <!-- ////////////// Page Title ///////////// -->
    <title>
        <xsl:value-of select="//ListStudentFinishedExam.Title"/>
    </title>

注意:我删除了第一行之前的任何前导空格,但错误仍然发生!


当前回答

调试XML文件。要么有空间,要么添加了额外或更少的标签。

为了更好地理解,可以通过命令行构建项目。Windows: gradlew构建

在我的例子中,AndroidManifest.xml在第一行有一个空格

<Empty Row> // This Creates the issue 
<?xml version="1.0" encoding="utf-8"?>

其他回答

对于PHP,在开始打印XML之前放入这行代码:

while(ob_get_level()) ob_end_clean();

在我的情况下是一个错误的路径在配置文件:文件没有找到(路径是错误的),它出现了这个异常:

从输入流配置错误。最初的原因是加工 不允许指令目标匹配“[xX][mM][lL]”。

只需删除这一行:<?XML版本="1.0"编码="utf-8"?>,因为这种错误只出现在这一行,或者你也可以根据这个答案中提到的行检查你的行格式。

在<resources>标记之前,有自动生成的XML版权消息和空行,一旦我删除它,我的构建就成功了。

对我来说,账单就是麻烦制造者。将标签替换为空白应该可以解决问题