序言中不能有内容

Posted

技术标签:

【中文标题】序言中不能有内容【英文标题】:Content is not allowed in prolog 【发布时间】:2011-03-24 15:49:24 【问题描述】:

我正在尝试使用xsltxml 转换为html。我正在使用java.xml.transform 在 java 中执行此操作。 在我遇到一些xml 之前,它工作得很好。它说以下错误。

[Fatal Error] :1:1: Content is not allowed in prolog. 
    javax.xml.transform.TransformerConfigurationException: 
    javax.xml.transform.TransformerConfigurationException: 
    javax.xml.transform.TransformerException: 
    org.xml.sax.SAXParseException: Content is not allowed in prolog.

所以我确保在 xml 声明之前没有字符。我什至使用该解决方案处理 BOM http://forums.sun.com/thread.jspa?messageID=10324562#10324562

仍然没有运气,它只发生在一个 xml 中。我什至在编辑器中打开了 xml 并将其保存在具有utf-8 编码的文件中。这真让我抓狂。任何想法?

更新:当您为xsl 文件提供了错误的路径并且发生未找到文件异常时,您会收到此错误。 (这是我的情况。它可能对某人有所帮助。感谢您的回复)

【问题讨论】:

显示 XML 文件(上传到某处) 了解 xml 文件可能会有所帮助。你能粘贴它(或其中一些)吗? @Bozho 和@Marcelo 将文件上传到2shared.com/document/tbf2IXUy/test2.html 我认为如果 XML(或者可能只是它的相关部分)在问题中会更好 - 这样可以将问题作为一个整体来考虑,而不必离开页面。 Noel 和 Jesper 的回答很有帮助。帮我选择正确的答案伙计们。我无法决定,因为问题不在 xml 或 xsl 中,而是在 xsl 文件路径中。 【参考方案1】:

如果您有一个带有BOM 的UTF-8 文件,并且如果您使用不知道它的XML 解析器,就会发生这种事情。将 XML 文件另存为不带 BOM 的 UTF-8。

【讨论】:

谢谢,这是我的问题。调用 BOM 的“内容”...谢谢,错误消息!【参考方案2】:

您的文件中有标题吗?比如:

<?xml version="1.0" encoding="utf-8"?>

这应该在第一行的开头。不幸的是,我看不到您的 XML 文件,因为该 URL 被我所在的位置阻止。

【讨论】:

以上是关于序言中不能有内容的主要内容,如果未能解决你的问题,请参考以下文章

序言中不能有内容。 android应用程序中的strings.xml [重复]

StaX:序言中不允许的内容

弱网测试之序言

java面试题库(长期)

MantisBT和PhpStorm的问题

序言问题中不允许内容