java - flaying Sacer org.xml.sax.SAXParseException 实体 HTML.Version 的声明必须以 > 结尾

标签 java validation pdf xhtml

我有 xhtml 文件: 在 http://validator.w3.org/ 上给我结果:此文档已成功检查为 HTML 4.01 Transitional!

我用下面的代码解析它: 输出流 os = null;

    ITextRenderer renderer = new ITextRenderer();

    os = new FileOutputStream(new File("example.pdf"));
    BufferedReader reader1 = new BufferedReader(new FileReader("x:\\workspace\\Test.html"));

    StringBuilder sb = new StringBuilder();
    String line = null;
    while ((line = reader1.readLine()) != null) {
        sb.append(line);
    }

    reader1.close();

    String str = sb.toString();

    renderer.setDocumentFromString(str);
    renderer.layout();
    renderer.createPDF(os);

    os.close();

我收到了标题中描述的错误。您知道如何解决这个问题吗?

最佳答案

您忘记了 HTML 页面中的右括号 (>)。

因此它不是 XHTML 页面,而只是一个 HTML4 页面。您指定的 validator 只能用于验证 HTML4,而不能用于验证 XHTML。

HTML4 允许您执行 XML(和 XHTML)中禁止的操作,例如在 HTML 中,以下内容是合法的:

<br

关于java - flaying Sacer org.xml.sax.SAXParseException 实体 HTML.Version 的声明必须以 > 结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18125211/

相关文章:

pdf - 从损坏的 (?) pdf 文档中提取文本

html - 从 PDF 中的 HTML 背景色创建 PDF

java - 请求处理失败;嵌套异常是 org.hibernate.MappingException : Unknown entity

java - 415 RESTful Web 服务中不支持的媒体类型

java - Eclipse Package Explorer 中的描述性图标

javascript - 如何使用 Cypress 检测 HTML 表单验证中 setCustomValidity 的输出

ruby-on-rails - FactoryGirl has_many 与双向存在验证的关联创建额外记录

java - Maven:如何在两个不同的模块下拥有同名的模块?

php 输入测试/mysql_real_escape_string/pdo

javascript - Office 365 API : How to solve Mac PDF template error: "A footer of section 1 is set outside the printable area of the page