序言中不能有内容
Posted
技术标签:
【中文标题】序言中不能有内容【英文标题】:Content is not allowed in prolog 【发布时间】:2011-03-24 15:49:24 【问题描述】:我正在尝试使用xslt
将xml
转换为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 被我所在的位置阻止。
【讨论】:
以上是关于序言中不能有内容的主要内容,如果未能解决你的问题,请参考以下文章