Java错误:不允许匹配“ [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>

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

回答:

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

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

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

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

  1. visible content exists before the<?xml ?>

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

  1. <?xml ?>。 最常见的是字节顺序标记(BOM)。

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

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

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

以上是 Java错误:不允许匹配“ [xX] [mM] [lL]”的处理指令目标 的全部内容, 来源链接: utcz.com/qa/427040.html

回到顶部