org.xml.sax.SAXParseException;prolog中不允许引用。自动生成的XHTML,java

org.xml.sax.SAXParseException;prolog中不允许引用。自动生成的XHTML,java,java,xhtml,xml-parsing,saxparser,libreoffice,Java,Xhtml,Xml Parsing,Saxparser,Libreoffice,我只是想尝试从xhtml代码生成PDF。所以我所做的是在LibreOffice中做一个布局,让它生成xhtml代码,然后(想要)将其交给解析库(用java)生成pdf。 然而,我无法接管所有的xml代码1:1,因为我需要逃避一些事情。。所以我用“\”转义了所有“”和所有双引号 在尝试分析整个过程时,我遇到以下错误: [Fatal Error] :1:2: Reference is not allowed in prolog. 我试图通过一些逻辑思考和谷歌搜索来找到它。如果我理解正确,下面是我的

我只是想尝试从xhtml代码生成PDF。所以我所做的是在LibreOffice中做一个布局,让它生成xhtml代码,然后(想要)将其交给解析库(用java)生成pdf。 然而,我无法接管所有的xml代码1:1,因为我需要逃避一些事情。。所以我用“\”转义了所有“”和所有双引号

在尝试分析整个过程时,我遇到以下错误:

[Fatal Error] :1:2: Reference is not allowed in prolog.
我试图通过一些逻辑思考和谷歌搜索来找到它。如果我理解正确,下面是我的“序言”:

很抱歉这个巨大的(丑陋的)东西,但是……我做的下一件事是,逐行注释,看看哪里是错误的东西

如果我注释掉这篇文章的前两行,错误仍然会出现,在第三行之后,我会得到一个不同的错误(“prolog中不允许内容”或类似的错误)

但是,这里是第三行..我找不到错误,非常感谢您的帮助:)

提前谢谢


edit1:已验证为完全正确!

您似乎被的糟糕布局弄糊涂了。如果下载,您将看到“”字符在作者的实际代码和数据中未转换为“”和“”


为了将引号转换成硬编码的Java字符串,您当然必须对其进行转义。但您不需要任何这种xml转义。

您正在转义不应该转义的内容。如果它是有效的xml,则所有需要转义的内容都已经存在,并且您不需要进行任何转义。但是我必须转义这些内容,因为否则我无法不要在java代码中使用它们作为字符串…也可以转义…他的代码就不那么复杂了。这家伙的教程已经5年了,有一些不起作用的链接,我一点都不相信。你出错的原因是文档中应该有“嗯,如果你是对的,那么如何处理这些字符呢(这使得人们无法对整个交易进行“硬编码”。你为什么要硬编码?只需从LibreOffice保存到一个文件,然后使用Java从文件中读取即可。嗯,我信任作者,因为它似乎是一个“创始贡献者”“但我明白你的意思,并查看了示例代码。如果这样的话,我今天下午可能会尝试接受你的答案!还有一件事:在作者的示例代码中,引号被转换为单引号。那么我应该通过\”转义它们还是用单引号替换它们(就像示例代码中的那样)
    buf.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
    buf.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN\" \"http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd\">");
    buf.append("<html xmlns=\"http://www.w3.org/1999/xhtml\"><!--This file was converted to xhtml by OpenOffice.org - see http://xml.openoffice.org/odf2xhtml for more info.--><head profile=\"http://dublincore.org/documents/dcmi-terms/\"><meta http-equiv=\"Content-Type\" content=\"application/xhtml+xml; charset=utf-8\"/><title xml:lang=\"en-US\">- no title specified</title><meta name=\"DCTERMS.title\" content=\"\" xml:lang=\"en-US\"/><meta name=\"DCTERMS.language\" content=\"en-US\" scheme=\"DCTERMS.RFC4646\"/><meta name=\"DCTERMS.source\" content=\"http://xml.openoffice.org/odf2xhtml\"/><meta name=\"DCTERMS.issued\" content=\"2012-11-20T20:59:05.11\" scheme=\"DCTERMS.W3CDTF\"/><meta name=\"DCTERMS.provenance\" content=\"\" xml:lang=\"en-US\"/><meta name=\"DCTERMS.subject\" content=\",\" xml:lang=\"en-US\"/><link rel=\"schema.DC\" href=\"http://purl.org/dc/elements/1.1/\" hreflang=\"en\"/><link rel=\"schema.DCTERMS\" href=\"http://purl.org/dc/terms/\" hreflang=\"en\"/><link rel=\"schema.DCTYPE\" href=\"http://purl.org/dc/dcmitype/\" hreflang=\"en\"/><link rel=\"schema.DCAM\" href=\"http://purl.org/dc/dcam/\" hreflang=\"en\"/><style type=\"text/css\">");
        buf.append("<html xmlns=\"http://www.w3.org/1999/xhtml\"><!--This file was converted to xhtml by OpenOffice.org - see http://xml.openoffice.org/odf2xhtml for more info.--><head profile=\"http://dublincore.org/documents/dcmi-terms/\"><meta http-equiv=\"Content-Type\" content=\"application/xhtml+xml; charset=utf-8\"/><title xml:lang=\"en-US\">- no title specified</title><meta name=\"DCTERMS.title\" content=\"\" xml:lang=\"en-US\"/><meta name=\"DCTERMS.language\" content=\"en-US\" scheme=\"DCTERMS.RFC4646\"/><meta name=\"DCTERMS.source\" content=\"http://xml.openoffice.org/odf2xhtml\"/><meta name=\"DCTERMS.issued\" content=\"2012-11-20T20:59:05.11\" scheme=\"DCTERMS.W3CDTF\"/><meta name=\"DCTERMS.provenance\" content=\"\" xml:lang=\"en-US\"/><meta name=\"DCTERMS.subject\" content=\",\" xml:lang=\"en-US\"/><link rel=\"schema.DC\" href=\"http://purl.org/dc/elements/1.1/\" hreflang=\"en\"/><link rel=\"schema.DCTERMS\" href=\"http://purl.org/dc/terms/\" hreflang=\"en\"/><link rel=\"schema.DCTYPE\" href=\"http://purl.org/dc/dcmitype/\" hreflang=\"en\"/><link rel=\"schema.DCAM\" href=\"http://purl.org/dc/dcam/\" hreflang=\"en\"/><style type=\"text/css\">");