错误:不允许处理目标匹配“[xX][mM][lL]”

2022-08-31 05:39:39

此错误,

不允许处理指令目标匹配“[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>

注意:我删除了第一行之前的所有前导空格,但仍然出现错误!


答案 1

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

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

当在 XML 文件顶部以外的任何位置遇到 XML 声明时。

这是一条有效的诊断消息。在这种情况下,其他 XML 分析器应发出类似的错误消息。

要更正此问题,请检查以下可能性:

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

    解决方案:删除 XML 声明之前的空白区域或任何其他可见内容。

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

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

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

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


答案 2

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

为了更好地理解,请通过命令行生成项目。窗户:gradlew build

在我的情况下,AndroidManifest.xml在第一行有一个空白区域。

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

推荐