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

新手上路,请多包涵

这个错误,

不允许匹配“[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>

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

原文由 Eslam Hamdy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.5k
2 个回答

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

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

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

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

原文由 Chintan Khetiya 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

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

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

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

要纠正该问题,请检查以下可能性:

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

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

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

解决 方法:使用 HTML 中 BOM 上的 W3C 页面建议的技术删除 BOM。

  1. XML 内容中存在一个杂散的 <?xml ?> 声明。 当以编程方式或通过剪切和粘贴合并 XML 文件时,可能会发生这种情况。一个XML文件中只能有一个 <?xml ?> 声明,而且只能在最前面。

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

原文由 kjhughes 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题