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 的相关文章

  • 如何根据运行的 jar 的结果让我的 ant 任务通过或失败?

    我正在运行 CrossCheck 无浏览器 js 单元测试 作为 ant 脚本的一部分 如果 CrossCheck 测试失败 我希望 ant 报告失败 这是 build xml 中的相关部分
  • 什么时候可以在 Java 中使用 Thead.stop() ?

    Thread stop 的 Java 文档听起来好像如果您调用 Thread stop 世界就会终结 已弃用 这种方法本质上是不安全的 停止线程 Thread stop 导致它解锁所有已锁定的监视器 作为未经检查的 ThreadDeath
  • Perl:HTTP::微小删除留下损坏的锚标记

    我编写了一个脚本 该脚本收集从数据库读取的缓冲区内的所有 URL 检查该页面是否仍然存在 并使用 HTTP Tiny 从缓冲区中删除 URL 如果该 URL 无法访问或返回无效 问题是 HTTP Tiny 删除左锚标记 例如此处无效的文本
  • 使用 Guice 优化注册表

    你好 今天思考了一种优化 有一些疑问 语境 我正在使用 Guice 2 进行 Java 开发 在我的网络应用程序中 我有一个转换器注册表 可以即时转换为某种类型 转换器描述如下 public class StringToBoolean im
  • 循环遍历元素并逐步为每个元素应用 CSS 规则

    我有一个网格布局 每个网格布局中都有不同数量的元素 我想动态添加内联grid column通过循环遍历 div 中存在的每个元素的 CSS 规则 ul 与一类 list 所以 HTML 代码的输出需要是 ul class list ul u
  • 生成的序列以 1 开头,而不是注释中设置的 1000

    我想请求一些有关 Hibernate 创建的数据库序列的帮助 我有这个注释 下面的代码 在我的实体类中 以便为合作伙伴表提供单独的序列 我希望序列以 1000 开头 因为我在部署期间使用 import sql 将测试数据插入数据库 并且我希
  • html css 下拉菜单

    这是我第一次在 Stack Overflow 上发帖 我不熟悉论坛发帖规定 所以请让我知道我做错了什么 我在论坛中研究过这个问题 但我所遇到的一切都没有给我明确的答案 我试图从 新闻 元素创建一个下拉菜单 但在运行代码时我从未得到任何可见的
  • 如何检测元素内容何时发生变化

    我正在寻找一种方法来监视元素内动态填充 无页面重新加载 内容 以便我可以将类添加到另一个元素 到目前为止我有这个 HTML div class message container div class messages error span
  • Jquery 在 DIV 中进行多重加载

    这是我的代码 right load textes html nicolas right load textes html antoine 问题是内容divantoine覆盖了右边div nicolas加载的内容div div right l
  • Django - 提交具有同一字段多个输入的表单

    预警 我对 Django 以及一般的 Web 开发 非常陌生 我使用 Django 托管一个基于 Web 的 UI 该 UI 将从简短的调查中获取用户输入 通过我用 Python 开发的一些分析来提供输入 然后在 UI 中呈现这些分析的可视
  • QuerySyntaxException:无法找到类

    我正在使用 hql 生成 JunctionManagementListDto 类的实际 Java 对象 但我最终在控制台上出现以下异常 org hibernate hql internal ast QuerySyntaxException
  • Docker 和 Eureka 与 Spring Boot 无法注册客户端

    我有一个使用 Spring Boot Docker Compose Eureka 的非常简单的演示 我的服务器在端口 8671 上运行 具有以下应用程序属性 server port 8761 eureka instance prefer i
  • 返回 Java 8 中的通用函数接口

    我想写一种函数工厂 它应该是一个函数 以不同的策略作为参数调用一次 它应该返回一个函数 该函数根据参数选择其中一种策略 该参数将由谓词实现 嗯 最好看看condition3为了更好的理解 问题是 它没有编译 我认为因为编译器无法弄清楚函数式
  • 使用布尔值进行冒泡排序以确定数组是否已排序

    我有以下用于冒泡排序的代码 但它根本不排序 如果我删除布尔值那么它工作正常 我知道 由于我的 a 0 小于所有其他元素 因此没有执行交换 任何人都可以帮助我解决这个问题 package com sample public class Bub
  • 如何让div与包含td的高度相匹配?

    我沿着桌子的一排布置了三个 面板 一个比另外两个高 我希望所有三个面板都与最高的一个的高度相匹配 我尝试将 div 的样式设置为 height 100 但是即使包含的 tds 增长 短面板仍然很短 我的 HTML 是由 JSF 生成的 因此
  • HTML 输入 - 名称与 ID [重复]

    这个问题在这里已经有答案了 使用 HTML 时
  • 在 HTML5 iOS 7 / iOS 8 中显示十进制键盘

    经过几个小时的搜索后 我只是有一个简单的问题 是否有可能在网络浏览器输入字段中显示小数键盘 input type number 只显示数字 但我需要在左下角使用逗号或点 我尝试过任何事情 pattern step等等 但没有显示十进制键盘
  • 泛型、数组和 ClassCastException

    我想这里一定发生了一些我不知道的微妙事情 考虑以下 public class Foo
  • 如何使用Python保存“完整的网页”而不仅仅是基本的html

    我正在使用以下代码来使用 Python 保存网页 import urllib import sys from bs4 import BeautifulSoup url http www vodafone de privat tarife r
  • 洪水填充优化:尝试使用队列

    我正在尝试创建一种填充方法 该方法采用用户指定的初始坐标 检查字符 然后根据需要更改它 这样做之后 它会检查相邻的方块并重复该过程 经过一番研究 我遇到了洪水填充算法并尝试了该算法 它可以工作 但无法满足我对 250 x 250 个字符的数

随机推荐

  • 如何通过 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