【问题标题】:Convert html to xml using java [duplicate]使用java将html转换为xml [重复]
【发布时间】:2013-10-29 16:06:46
【问题描述】:

任何人都可以建议我使用 java 将 html 转换为 xml 的最佳方法吗 有没有可用的API? html 也可能包含 javascript 代码

我试过下面的代码:

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;
import java.io.IOException;

class HTML2XML {
    public static void main(String args[]) throws JDOMException {
    InputStream isInHtml = null;
    URL url = null;
    URLConnection connection = null;
    DataInputStream disInHtml = null;
    FileOutputStream fosOutHtml = null;
    FileWriter fwOutXml = null;
    FileReader frInHtml = null;
    BufferedWriter bwOutXml = null;
    BufferedReader brInHtml = null;
    try {
        // url = new URL("www.climb.co.jp");
        // connection = url.openConnection();
        // isInHtml = connection.getInputStream();

        frInHtml = new FileReader("D:\\Second.html");
        brInHtml = new BufferedReader(frInHtml);
        SAXBuilder saxBuilder = new SAXBuilder(
                "org.ccil.cowan.tagsoup.Parser", false);
        org.jdom.Document jdomDocument = saxBuilder.build(brInHtml);

        XMLOutputter outputter = new XMLOutputter();
        org.jdom.output.Format newFormat = outputter.getFormat();
        String encoding = "iso-8859-2";
        newFormat.setEncoding(encoding);
        outputter.setFormat(newFormat);

        try {
            outputter.output(jdomDocument, System.out);
            fwOutXml = new FileWriter("D:\\Second.xml");
            bwOutXml = new BufferedWriter(fwOutXml);
            outputter.output(jdomDocument, bwOutXml);
            System.out.flush();
        } catch (IOException e) {
        }

    } catch (IOException e) {
    } finally {
        System.out.flush();
        try {
            isInHtml.close();
            disInHtml.close();
            fosOutHtml.flush();
            fosOutHtml.getFD().sync();
            fosOutHtml.close();
            fwOutXml.flush();
            fwOutXml.close();
            bwOutXml.close();
        } catch (Exception w) {

        }
    }
}
}

但它没有按预期工作

【问题讨论】:

  • 你的意思是 XHTML 吗?那么这段 Javascript 代码呢,你想用它做什么?
  • 我必须将普通的html文件转换为xml
  • 您需要将它们转换为 XHTML吗? XHTML 是 HTML 的 XML 表示。 'Just' XML 可以是任何东西。
  • 你试过jtidy.sourceforge.net吗?
  • 否则您可以将整个 HTML 文档嵌入到单个 XML 元素中,正如 in this question 所证明的那样。这可能不是您想要的,但我们需要更多信息。

标签: java html xml jtidy


【解决方案1】:

试试jTidy

JTidy 可用作清理格式错误和有缺陷的 HTML 的工具

【讨论】:

    【解决方案2】:

    如果您想解析 html 而不是将 html 转换为 xml,您可以使用 html 解析器。 http://www.mkyong.com/java/jsoup-html-parser-hello-world-examples/ http://htmlparser.sourceforge.net/javadoc/doc-files/using.html 希望对你有帮助。

    【讨论】:

      【解决方案3】:

      HTML 与 XML 不同,除非它在 ​​XML 模式下符合 XHTML 或 HTML5。

      建议使用 HTML 解析器来读取 HTML 并将其转换为 XML - 或直接处理它。

      【讨论】:

        猜你喜欢
        • 2023-03-03
        • 1970-01-01
        • 2012-03-09
        • 2013-01-28
        • 1970-01-01
        • 2014-03-08
        • 2012-09-29
        • 2011-05-18
        相关资源
        最近更新 更多