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

Jav*_*yer 176 java xml xslt

每当我运行一个以如下开头的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>
Run Code Online (Sandbox Code Playgroud)

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

kjh*_*hes 353

基于Xerces的工具将发出以下错误

The processing instruction target matching "[xX][mM][lL]" is not allowed.
Run Code Online (Sandbox Code Playgroud)

何时在XML文件顶部以外的任何地方遇到XML声明.

这是一个有效的诊断消息; 其他XML解析器应该在这种情况下发出类似的错误消息.

要解决此问题,请检查以下可能性:

  1. 声明前存在一些空白或其他可见内容<?xml ?>.

    解决方案:在XML声明之前删除空格或任何其他可见内容.

  2. 声明之前存在一些不可见的内容<?xml ?>. 最常见的是字节顺序标记(BOM).

    解决方案:使用诸如HTML中的BOM上的W3C页面建议的技术删除BOM .

  3. XML内容中存在一个杂散<?xml ?>声明. 当XML文件以编程方式或通过剪切和粘贴组合时,可能会发生这种情况.<?xml ?>XML文件中只能有一个声明,它只能位于顶部.

    解决方案:以 <?xml不区分大小写的方式搜索,并从文件中删除除顶部XML声明之外的所有声明.

  • 你有同情心,因为间歇性的问题很难调试.但是,除了告诉你这个错误肯定是确定性的**之外,我无法提供更多的帮助**:对于XML声明来说,它总是***是一个错误,它出现不止一次或者除了XML文件的顶部.祝好运. (4认同)
  • 如果您的 XML 消息存储为字符串,则可以尝试在将字符串传递到 SAX 解析器之前对字符串执行 trim() 操作。由于某种原因,我收到的 XML 响应在开头引入了额外的空格,这导致解析时出现上述 Xerces 错误。 (3认同)

Chi*_*iya 24

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

为了更好地理解通过命令行构建项目。视窗:gradlew build

就我而言,AndroidManifest.xml 第一行有一个空格

<Empty Row> // This Creates the issue 
<?xml version="1.0" encoding="utf-8"?>
Run Code Online (Sandbox Code Playgroud)


Anu*_*dal 10

我的理由是一个xml中的以下代码中的2个

<?xml version="1.0" encoding="utf-8"?>
Run Code Online (Sandbox Code Playgroud)

  • 我删除了 &lt;?xml 版本前面的空格...这对我有用。 (6认同)

Hit*_*ahu 5

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

在此处输入图片说明

  • 删除注释或空格 ***before *** XML 声明可以消除此错误,但对于图像中显示的文档,无需删除注释或 ***after *** XML 的空行宣言。 (2认同)