FOP错误表示HTML文件需要匹配的结束标记,即使它已经这样做了

FOP错误表示HTML文件需要匹配的结束标记,即使它已经这样做了,html,pdf,apache-fop,Html,Pdf,Apache Fop,我目前正在使用ApacheFop创建HTML文件的PDF版本。文件本身已经准备好了各种fo标记,但是当我尝试使用命令行(FOP-fo NoteBook.html-pdf test.pdf)执行FOP时,我收到一个错误,说“元素类型‘META’必须由匹配的结束标记“”终止”。它具体指的是标签。在对文件进行完整搜索后,我找到了结束标记。是什么导致FOP出现这种错误 注意:我在共享此程序的实际代码方面非常有限。您收到的错误可能是由于您的HTML文件不是有效的XML,因此无法解析 例如,是正确的HTML

我目前正在使用ApacheFop创建HTML文件的PDF版本。文件本身已经准备好了各种fo标记,但是当我尝试使用命令行(FOP-fo NoteBook.html-pdf test.pdf)执行FOP时,我收到一个错误,说“元素类型‘META’必须由匹配的结束标记“”终止”。它具体指的是标签。在对文件进行完整搜索后,我找到了结束标记。是什么导致FOP出现这种错误


注意:我在共享此程序的实际代码方面非常有限。

您收到的错误可能是由于您的HTML文件不是有效的XML,因此无法解析

例如,
是正确的HTML,但为了成为有效的XML,它应该是

然而,这只是冰山一角,因为真正的问题是 FOP不接受HTML文件作为输入;它接受:

  • 符合以下条件的FO文件:
  • 或者一个XML文件+一个XSLT样式表生成FO结果(只是为了方便用户,因为样式表转换是使用库完成的,而不是直接由FOP完成的)

如果您有一个HTML文件,并且希望使用FOP生成PDF,则必须找到或开发一个工具将其转换为FO文件。特别是,如果您选择使用XSLT转换,您必须确保输入是有效的XML。

也许您需要严格的html/xhtml,但我不知道fopSome中间的标记可能是不匹配的。标签必须正确嵌套和关闭。不看HTML是不可能的,但是当你说你必须对文件进行“完整的搜索”时,听起来好像有很多中间的HTML,大约有9000行代码。但问题是,这段代码也用于在web浏览器中创建各种各样的笔记簿,而且效果很好。web浏览器比XML应用程序更宽容,更不严格。您的FO文件根本不是格式良好的XML。在看不到实际代码的情况下,这就是我所能说的。当我应该使用FO或XML和XSLT的组合时,你说我使用HTML是正确的。我已经能够创建FO文件,但当我尝试将其转换为PDF时,相同的错误仍然存在。然而,你确实回答了我的问题,所以我可能不应该再使用这篇文章了。@Sir\u Muffin META不是有效的FO元素,如果你的FO文件中有它,XSLT可能有问题。