任何人都可以建议我使用 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) {
}
}
}
}
但它没有按预期工作