`
awdxzc
  • 浏览: 335672 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JTidy HTML2XML

    博客分类:
  • J2SE
阅读更多
JTidy 一个能将HTML格式转换成XML的工具。

public class TestJTidy
{
    public static void main(String[] args)
    {
        Tidy tidy = new Tidy(); // obtain a new Tidy instance
        tidy.setXmlOut(true); // set desired config options using tidy setters
        tidy.setQuoteNbsp(false);
        tidy.setQuoteMarks(false);
        tidy.setQuoteAmpersand(false);
        tidy.setCharEncoding(Configuration.RAW);
        try
        {
            FileInputStream in = new FileInputStream(new File("c://a.html"));
            FileOutputStream out = new FileOutputStream(new File("output.xml"));
            tidy.parseDOM(in, out );
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }
}


这里是从文件输入处理输出一个文件。 当然你可以不输出文件,parseDOM方法也是调用的parse方法。放回一个Document对象。你可以针对Document来进行业务处理。

JTidy 与NekoHTML


对这两者进行比较,似乎勉为其难。不过,我看NekoHTML时,发现JTidy也有解析HTML的功能,JTidy最新的班本是2001年8月发布的,一看日期就让我失望,不过呢,好像在2009年7月31日发布了新版本。JTidy主要是整理(tidy)HTML文件的,更多的是关注HTML的规范,尤其是当我看到那一堆设置参数时,不由得喜欢起来。Jtidy好用的原因是因为它定制功能很强大 ,Tidy类里面有一堆setter/getter函数,就是用来对功能进行定制的。 要想整理 HTML,用JTidy没错。 附表:HTML Tidy设置参考列表。

引用

public void setIndentContent(boolean IndentContent)  是否使用缩进
public void setSmartIndent(boolean SmartIndent)  节点结束后,是否另起一行
public void setQuoteMarks(boolean QuoteMarks)  用 "替换 "
public void setQuoteNbsp(boolean QuoteNbsp)
public Document parseDOM(java.io.InputStream in,java.io.OutputStream out)  转换为DOM对象
etAltText(java.lang.String altText)
加上默认的alt属性值
setBreakBeforeBR(boolean breakBeforeBR)
在换行<br />之前加一空行
setCharEncoding(int charencoding)
已废弃
setConfigurationFromFile(java.lang.String filename)
从文件中读取配置信息
setConfigurationFromProps(java.util.Properties props)
从properties中读取配置信息
setErrfile(java.lang.String errfile)
错误输出文件
setFixBackslash(boolean fixBackslash)
URL中用/取代\
setForceOutput(boolean forceOutput)
不管生成的xml是否有错,强制输出。
setHideComments(boolean hideComments)
结果中不生成注释
setInputEncoding(java.lang.String encoding)
输入编码
setLogicalEmphasis(boolean logicalEmphasis)
用em替代i,strong替代b
setMessageListener(TidyMessageListener listener)
加入一个TidyMessageListener监听器
setOnlyErrors(boolean onlyErrors)
只输出错误文件
setOutputEncoding(java.lang.String encoding)
输出编码
setPrintBodyOnly(boolean bodyOnly)
只输出body中的部分
setRepeatedAttributes(int repeatedAttributes)
重复属性的处理
setSpaces(int spaces)
每行前的空格数,就是缩进格式
setTidyMark(boolean tidyMark)
是否生成tidy标记
setTrimEmptyElements(boolean trimEmpty)
不输出空元素
setUpperCaseAttrs(boolean upperCaseAttrs)
属性变大写
setUpperCaseTags(boolean upperCaseTags)
标记变大写
setWraplen(int wraplen)
多长换行
setXHTML(boolean xhtml)
输出xhtml(扩展性html)
setXmlOut(boolean xmlOut)
输出xml
setXmlPi(boolean xmlPi)
文件头输出xml标记
setXmlSpace(boolean xmlSpace)
加入xml名字空间属性


如果你弄了半天还是被jtidy复杂的配置弄得晕头转向,你可以把他的 配置输出来看看 ,方法如下:
tidy.getConfiguration().printConfigOptions(new PrintWriter(System.out), true);

附:http://jtidy.sourceforge.net/


分享到:
评论

相关推荐

    JTidy配置手册,将Html页面转化为xml

    JTidy是一款开源的Java库,专门用于清理和格式化HTML文档,同时也支持将HTML转换为XML格式。这个工具对于处理不规范或者混乱的HTML代码尤其有用,它可以帮助开发者将不规则的HTML源码整理成符合W3C标准的XML文档,...

    Jtidy 将HTML转化成XML

    利用Jtidy工具, 将HTML转化成XML,这里给出简单的转换方法。

    html转换成xml使用的Jtidy类库

    html转换成xml使用的tidy类库,很好用也很简单,

    jtidy简单使用

    jtidy简单使用 java jtidy xml html

    jtidy-r938.zip

    《Java使用JTidy将HTML转换为XML的详解》 在信息技术领域,HTML(超文本标记语言)和XML(可扩展标记语言)是两种广泛使用的数据格式。HTML主要用于网页的结构化表示,而XML则强调数据的结构和语义。在某些场景下,...

    jtidy-04aug2000r7-dev.zip_ jtidy-r938-sources_JTidy-lizi_jtidy _

    JTidy是一个开源的Java库,它的全称是Java Tidy,主要用于处理HTML和XML文档。这个库的主要功能是对不规范的HTML进行清理和格式化,使其符合W3C的HTML和XHTML标准,并且能够将HTML转换为XML或XHTML格式。在"jtidy-04...

    jsoup和jtidy 对html操作,将不规范的html转换为xhtml

    2. 然后,如果需要进一步规范化,可以将jsoup处理后的结果传递给Jtidy,Jtidy将不规范的HTML转换为符合XHTML标准的文档。 3. 最后,根据需求,可以通过这两个库提供的API来提取数据,修改元素,甚至重构整个HTML结构...

    2jtidy-04aug2000r7-dev.zip_jti_jtidy _zip

    总结来说,"2jtidy-04aug2000r7-dev.zip"是一个包含JTI和Jtidy的开发包,专为XML解析和HTML清理提供支持。通过理解和使用这些工具,开发者能够更高效、更准确地处理XML和HTML数据,提升项目质量,降低维护成本。同时...

    jtidy-r820

    JTidy 一个能将HTML格式转换成XML的工具。 JTidy是HTML Tidy(一个HTML语法检查器和优雅的打印编排工具)的Java移植,除了本身具有的清除HTML文件难看或错误内容的功能外,还提供了一个DOM接口,程序员可以将JTidy...

    jtidy-04aug2000r7-dev.zip

    3. **XML兼容性**:jtidy能将HTML转换为XHTML,使得原本非结构化的HTML具备了XML的结构化特性,方便进一步的XML处理。 4. **DOM操作**:jtidy提供了一套基于DOM(Document Object Model)的API,允许开发者通过Java...

    Java通过DOM+Jtidy结合Mysql实现基于本地的简单的搜索系统

    JTidy是一个开源的Java库,它可以将HTML文档清理和规范化,使其符合XML标准。通过JTidy,我们可以读取HTML文件,将其整理成规范的XML文档,便于后续的解析和处理。 2. **DOM解析**: DOM(Document Object Model)...

    基于XML的web信息抽取系统

    2. **HTML解析**:网页获取后,系统会利用HTML解析库,如JTidy,对HTML代码进行解析。JTidy是一个Java库,用于清理和格式化HTML,使其符合标准,便于后续处理。 3. **页面清理**:由于网页源码可能存在不规范的情况...

    html文件解析器-源码

    2. **语法解析**:在词法分析的基础上,JTidy会按照HTML的语法规则解析这些元素,形成一个内部的数据结构,通常是DOM树。 3. **错误修复**:由于HTML常常存在不规范的情况,如缺失的闭合标签、属性等,JTidy会尝试...

    java的html2word

    对于HTML到Word的转换,我们需要使用POI中的`HWPFDocument`类来创建和操作Word文档,并使用HTML解析库(如Jsoup或JTidy)来解析HTML内容。 以下是一个简化的HTML转Word的基本流程: 1. **引入依赖**:首先,在项目...

    html2pdf代码.7z

    Jtidy是一个强大的Java库,主要用于解析、清理和重构HTML或XML文档。它能够将不规范的HTML代码转化为符合W3C标准的XHTML,这对于后续处理非常重要,因为许多工具需要结构清晰的HTML作为输入。 1. **Jtidy的使用**:...

    android手机开发利器B4a最新库文件(截止到20170424)

    2011/11/30 周三 23:31 2,387 AnswerCall.xml 2017/02/21 周二 23:52 22 AppCompat.jar 2017/02/21 周二 23:52 186,047 AppCompat.xml 2014/06/10 周二 04:03 9,456 AppUpdating.jar 2014/06/10 周二 04:03 11,140 ...

    java解析html

    4. **JTidy** - JTidy 是一个 Java 实现的 HTML/Tidy 解析器和格式化器,它可以将 HTML 转换为符合标准的 XHTML,同时也可以解析 HTML 和 XML。 这些库都提供了不同的方法来解析和操作 HTML,开发者可以根据具体...

    java把文档对象转为html

    - **JTidy**:JTidy是一个Java版本的Tidy,用于清理和格式化HTML或XML,可以在处理转换后的HTML时确保其结构正确。 2. **转换过程**: - **PDF转HTML**:使用PDFBox,首先读取PDF文件,然后遍历页面,提取文本和...

    Java理论与实践:用XQuery进行屏幕搜集

    清单1展示了如何使用JTidy将HTML转换为XML DOM,从而允许通过XPath或XQuery进行后续处理。虽然XPath也是提取数据的有效工具,但XQuery的学习曲线相对较平缓,且更适合处理复杂的数据提取任务。XQuery的设计初衷是...

    基于Java的实例开发源码-HTML文档解析器 HTMLParser.zip

    2. **Java解析库**:在Java中,有多种库可以用来解析HTML,如Jsoup、JTidy和本文档解析器HTMLParser。HTMLParser是一个轻量级的库,设计用于解析HTML文档并将其转换为可操作的数据结构,方便进一步处理。 3. **...

Global site tag (gtag.js) - Google Analytics