序言中不能有内容

时间:2010-08-03 10:19:04

标签: java xml parsing utf

我正在尝试使用xmlxslt转换为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文件指定了错误的路径并且找不到文件未找到异常时,会收到此错误。 (这是我的情况。它可能对某人有所帮助。感谢您的回复)

2 个答案:

答案 0 :(得分:6)

如果您的UTF-8文件带有BOM,并且您使用的XML解析器不知道它,则会发生这种情况。将XML文件保存为UTF-8而不使用BOM。

答案 1 :(得分:4)

您的文件中是否有标题?类似的东西:

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

那应该是在第一行的开头。很遗憾,我无法看到您的XML文件,因为该网址已被阻止。