JTidy java API 将 HTML 转换为 XHTML

2023-12-05

我正在使用 JTidy 从 HTML 转换为 XHTML,但我在我的 XHTML 文件中发现了这个标签 。 我可以阻止它吗?
这是我的代码

    //from html to xhtml
   try   
    {  
        fis = new FileInputStream(htmlFileName);  
    }  
    catch (java.io.FileNotFoundException e)   
    {  
        System.out.println("File not found: " + htmlFileName);  
    }  
        Tidy tidy = new Tidy(); 
        tidy.setShowWarnings(false);
        tidy.setXmlTags(false);
        tidy.setInputEncoding("UTF-8");
        tidy.setOutputEncoding("UTF-8");
        tidy.setXHTML(true);// 
        tidy.setMakeClean(true);
        Document xmlDoc = tidy.parseDOM(fis, null);  
    try  
    {  
        tidy.pprint(xmlDoc,new FileOutputStream("c.xhtml"));  
    }  
    catch(Exception e)  
    {  
    }

当输入也被视为 XML 时,我才取得了成功。所以要么将 xmltags 设置为 true

 tidy.setXmlTags(true);

并接受错误和警告,或者进行两次转换。 第一次转换是为了清理 html(html 到 xhtml),第二次转换是使用设置的 xmltags 从 xhtml 到 xhtml,因此不会出现错误和警告。

        String htmlFileName = "test.html";
    try( InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream(htmlFileName);
         FileOutputStream fos = new FileOutputStream("tmp.xhtml");) {
        Tidy tidy = new Tidy();
        tidy.setShowWarnings(true);
        tidy.setInputEncoding("UTF-8");
        tidy.setOutputEncoding("UTF-8");
        tidy.setXHTML(true);
        tidy.setMakeClean(true);
        Document xmlDoc = tidy.parseDOM(in, fos);
    } catch (Exception e) {
        e.printStackTrace();
    }

    try( InputStream in = new FileInputStream("tmp.xhtml");
         FileOutputStream fos = new FileOutputStream("c.xhtml");) {
        Tidy tidy = new Tidy();
        tidy.setShowWarnings(true);
        tidy.setXmlTags(true);
        tidy.setInputEncoding("UTF-8");
        tidy.setOutputEncoding("UTF-8");
        tidy.setXHTML(true);
        tidy.setMakeClean(true);
        Document xmlDoc = tidy.parseDOM(in, null);
        tidy.pprint(xmlDoc, fos);
    } catch (Exception e) {
        e.printStackTrace();
    }

我用的是最新的jtidy版本938。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JTidy java API 将 HTML 转换为 XHTML 的相关文章

  • 是否可以从另一个方法传递 args[] 来调用 main 方法?

    我试图从另一个传递参数的方法调用类的主要方法 就像从命令行运行该类时一样 有没有办法做到这一点 您可以致电main方法就像您调用任何其他 静态 方法一样 MyClass main new String arg1 arg2 arg3 Exam
  • 动态表中每个按钮的 Jquery-Ui 对话框表单

    我正在生成一个 HTML 表 每行都有一个按钮 必须打开 Jquery ui 对话框表单 The table table class table table reporting table condensed table striped t
  • 支持通过 OAuth 进行 Facebook/Twitter 身份验证的 CAS 服务器

    我正在寻找一个支持 Facebook Twitter 通过 OAuth 进行单点登录身份验证的 CAS 服务器 我检查过 JASIG CAS 服务器 但它看起来不支持它们 我的 java web 应用程序基于 Spring Security
  • 如何在 div 容器内的元素之间留出空间

    我有一个弹性容器 它将由元素动态填充 容器没有固定宽度 I use max width max content 并且可以包含我想要的任意数量的元素 问题是我需要这些元素之间的间距 但不需要元素和容器之间左侧和右侧的间距 当然我可以用 ele
  • 从网站存储数据的最简单方法(在服务器端)

    我有一个非常简单的网站 实际上是单页 有一个输入字段和一个按钮 我需要将用户提交的数据存储在服务器端的某个位置 完美的方法可能是简单的文本文件 并在每次单击按钮后附加新行 日志文件也可以 据我了解 JavaScript 本身是不可能的 我在
  • 使用Java开发跨平台,不同平台字体缩放不同

    我正在为我的大学制作一些软件 需要一个 GUI 在它的第一个版本中 我让它使用系统外观 因此它看起来像 Linux Mac Windows 中的本机应用程序 我发现这很麻烦 因为我必须根据操作系统使所有 JLabel 具有不同的大小 无论分
  • Java ConcurrentModificationException [重复]

    这个问题在这里已经有答案了 当删除倒数第二个元素时 没有 ConcurrentModificationException List
  • 使用溢出时无法隐藏滚动条:auto

    我有这个CSS div background color red position relative height 414px overflow auto width 902px margin 0px auto 我尝试过overflow y
  • 在Java中多次读取System.in会导致IOException?

    我正在尝试创建一个小命令行游戏来强化我在过去几个月中在 Java 中学到的一些东西 我正在尝试创建一个名为 readInput 的方法 它返回一个我可以一次又一次调用的字符串 第一次它工作正常 但第二次它会导致 IO Exception 如
  • 战争库中的罐子爆炸

    我们可以将分解的 jar 文件放入 war web inf 库中吗 它在 JBOSS 4 2 中对我不起作用 我收到以下错误并且无法部署应用程序 Caused by javax management RuntimeOperationsExc
  • 我们可以有虚假中断吗?

    我正在创建一个任务轮询器 每分钟都会查找任务 它看起来像这样 public class Poller private final ExecutorService e Executors newSingleThreadExecutor pub
  • 显示班级图片 10 秒

    我有下面给出的代码显示9 boxes 其值如下digital time 还有一个班级box002显示digits相当于随机选择的九个盒子的值 box002 can be dragged to digital time starting wi
  • 读/写带有特殊字符的.txt文件

    I open Notepad Windows 并写 Some lines with special characters Special 并前往另存为 someFile txt 与Encoding set to UTF 8 在Java中我有
  • JMockit - 初始化问题

    当我使用以下测试时 我收到警告 警告 JMockit 是按需初始化的 这可能会导致某些测试失败 请检查文档以获取更好的初始化方法 这是我的测试实现 package test import static mockit Mockit impor
  • 如何从spark中的hbase表中获取所有数据

    我在 hbase 中有一个大表 名称为 UserAction 它具有三个列族 歌曲 专辑 歌手 我需要从 歌曲 列族中获取所有数据作为 JavaRDD 对象 我尝试了这段代码 但效率不高 有更好的解决方案来做到这一点吗 static Spa
  • 随机定位的 div,不重叠

    所有 div 都像我需要的那样 随机 放置 但它们偶尔会重叠 这只是一个机会问题 我怎样才能防止这种情况发生 理想情况下我能够设置它们之间的最小距离 我可以通过进一步开发当前的 javascript 来实现这一目标吗 我需要考虑完全不同的方
  • java.io.EOFException:没有更多可用数据 - 预期结束标记 关闭开始标记

    我正在使用 xmpp 开发一个聊天应用程序 根据我们的要求 我们有三台服务器 Apache Tomcat 7 ejabbered 2 1 11 和 mysql 5 5 to run xmppbot on tomcat used below
  • 如何使用剪辑来减少绘画时间?

    我正在尝试使用 Clip 来减少 CPU 负载 但剪辑在屏幕上留下了一些我似乎无法摆脱的垃圾 另外 打开和关闭剪辑似乎对 CPU 负载没有影响 在任一情况下 大部分时间似乎都花在重绘管理器和绘制缓冲图像上 import static jav
  • 使用 JavaScript onclick 添加表格行

    我正在尝试使用 javascript 添加下面找到的完全相同的元素 我已经尝试了这里找到的所有解决方案 我什至尝试用php echo但没有运气 无需更改任何输入名称或类似内容 只需单击该按钮即可向表中添加另一行 仅此而已 这是该元素 tr
  • Libgdx 和 Google 应用内购买结果

    我遵循了这些指示 https github com libgdx libgdx wiki Interfacing with platform specific code使用 ActionResolver 接口集成 Libgdx 和原生 An

随机推荐

  • 如何通过 XAML 中的样式重用项目子项?

    我有一个 WPF 子菜单 我想在 XAML 中的几个地方重用它 这是八张合集
  • 检测点是在 raphael.js 形状的内部还是外部

    我有一个 raphael js 形状 我正在其上绘制圆圈 我只希望当圆没有超出其所绘制的形状的边界时出现一个圆 为了更清楚地说明这一点 以下是我不希望发生的情况的示例 示例http img682 imageshack us img682 4
  • 谷歌折线图:线向下时改变颜色

    https developers google com chart interactive docs gallery linechart 大家好 我想知道有没有办法改变线条向下移动时的颜色 我用谷歌搜索但找不到任何东西 例如 折线图向上移动
  • 在Python中向小数点后的浮点数添加零

    我正在从一个文件中读取数据 修改它并将其写入另一个文件 新文件将由另一个程序读取 因此保留精确的格式至关重要 例如 我的输入文件中的数字之一是 1 000000 我的脚本对列应用了一些数学并且应该返回 2 000000 但目前返回的是 2
  • Typescript 有联合,那么枚举是多余的吗?

    自从 TypeScript 引入联合类型以来 我想知道是否有任何理由声明枚举类型 考虑以下枚举类型声明 enum X A B C var x X X A 和类似的联合类型声明 type X A B C var x X A 如果它们基本上服务
  • 平滑鼠标移动

    我正在开发一个软件 根据我从 kinect 的深度图像获得的某些坐标来移动鼠标 但我有 30 帧 秒 图像 秒 并且这些坐标随着每一帧而变化 因此鼠标不断移动 我的问题是 有没有办法让鼠标的移动平滑 是的 您可以使用一些参数开始跟踪 以使移
  • 将 Gradle 支持添加到 IntelliJ 项目的最佳方法

    我环顾四周 没有找到将现有 IntelliJ 项目转换为 Gradle 的最佳解决方案 我在团队环境中工作 我们目前共享 ipr 文件 因为我们有一些跟踪的构建配置 我们最终将摆脱那些支持 Gradle 的人 但在 Gradle 转换完成之
  • 更新可变 HashMap 值,这是一个可变集合

    我有一张如下所示的地图 Map A gt Collection B 该映射会循环更新 然而 特殊之处在于 更新主要意味着将元素 B 添加到 Collection B 对于某些键 A 我试图找出是否可以通过将 Collection 的类型从
  • 需要在solaris命令中重新排列和求和列

    我有以下名为 atp csv 文件的数据 Date Time M ID N ID Status Desc AMount Type 2015 01 05 00 00 00 076 1941321748 BD9010423590206 200
  • 如何在 MatLab 中设计 SOAP 调用

    我根本不清楚如何从 MatLab 调用网络服务 我正在尝试申请本指南但我不明白几个部分 比如这个 哪里指定是GET还是POST What is 名称空间 我应该如何提供我拥有的 WSDL 文件 我很迷失所以任何提示将不胜感激 如果您有权访问
  • EF Code First Mysql 到 SQL Server

    我有一个 MVC 5 应用程序 我首先将其配置为使用 Mysql 但现在希望它使用 SQL Server 我的应用程序首先使用代码和迁移来生成数据库 更改所有必需的配置后 我尝试从包管理控制台运行更新数据库 但我不断收到此错误 System
  • 同步块是否会阻止其他线程向同步列表中插入数据?

    所以我正在开发一个多线程java应用程序 我有这个问题 List
  • 负数和正数的正则表达式

    我需要一个输入字段的正则表达式 以允许负数和正数 并且不允许字母 特殊字符 我见过其他人实现了这一点 但他们允许在字符串中的任何位置使用减号 而我只想允许在字符串的开头使用减号 注意 我想允许用户使用箭头 del home 键等 这是获取正
  • 如何在 SSRS 2008 R2 中将图表的宽度与 Tablix 的宽度对齐?或者如何使用 DynamicWidth 属性?

    我正在创建 SSRS 报告 该报告由 tablix 和图表组成 两者都描述相同的数据 即相同的数据库查询 Tablix 的实际列数由查询返回的行数动态决定 我们以按列的方式显示记录 Example 如果查询返回 5 条记录 则 Tablix
  • 如何将缓存清单添加到 Meteor 应用程序?

    嗯 添加就没有问题了 但是如何生成缓存清单呢 我需要以某种方式获取 Meteor 生成的 CSS 和 JS 组合的路径 http www whatwg org specs web apps current work manifests Up
  • 查找左上角和右下角点 (C++)

    我正在为我正在进行的项目寻求帮助 我正在做的是多边形近似算法 我已经获得了边界的所有点 但为了启动算法 我需要从点集中找到左上角和右下角的点 所有点都存储在一个结构体数组中 其中包含每个点的 x 和 y 坐标 关于循环点数组的简单方法有什么
  • 如何在Android中的.csv文件中逐行写入contactname和contactno?

    我想从手机中获取联系人姓名和相应的联系人号码 并将其写入 csv文件 每行将包含整个联系人列表中每个人的联系人姓名和联系电话号码 联系方式怎么写 csv file 我编写了用于显示联系人姓名列的代码 但它仅显示一个联系人 这意味着它会覆盖现
  • 如何将 Map 对象写入文件

    我想从 a 写入文件Map目的 这是我的尝试 try stuMap put student getId student Path file Paths get student txt to create the file Files wri
  • MASM x64 中的跳转表实现?

    我正在尝试使用跳转表在汇编 MASM64 Windows x64 中实现算法 基本思想是 我需要对数据执行 3 种不同类型的操作 这些操作取决于一些变量 但我发现实现大量切换和许多冗长的实现很乏味 PUBLIC superFunc 40 v
  • JTidy java API 将 HTML 转换为 XHTML

    我正在使用 JTidy 从 HTML 转换为 XHTML 但我在我的 XHTML 文件中发现了这个标签 nbsp 我可以阻止它吗 这是我的代码 from html to xhtml try fis new FileInputStream h