`
xinklabi
  • 浏览: 1588241 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
文章分类
社区版块
存档分类
最新评论

HTML文件转换成XML文件

 
阅读更多

HTML文件轉換成XML文件

import java.io.BufferedInputStream;

import java.io.FileOutputStream;

import java.io.FileWriter;

import java.io.IOException;

import java.io.PrintWriter;

import java.net.URL;

import org.w3c.tidy.Tidy;

public class HTML2XML {

private String url;

private String outFileName;

private String errOutFileName;

public HTML2XML(String url, String outFileName, String errOutFileName){

this.url = url;//提供一個輸入的URL

this.outFileName = outFileName;//輸出文件

this.errOutFileName = errOutFileName;//錯誤文件

}

public static void main(String[] args){

//參數:HTML文件的UTL,輸出文件和錯誤文件名

System.out.println("程序開始運行……");

HTML2XML t = new HTML2XML("http://hswebuat01/maximo/help.html",

"c:\\temp\\html2xml.xml","c:\\temp\\err.txt");

t.convert();

System.out.println("程序運行結束……");

}

public void convert(){

URL u;

BufferedInputStream in;

FileOutputStream out;

Tidy tidy = new Tidy();

tidy.setXmlOut(true);//告訴TidyHTML轉換成XML

try{

tidy.setErrout(new PrintWriter(new FileWriter(errOutFileName),true));//將錯誤信息保存到文件中

u = new URL(url);

 

in = new BufferedInputStream(u.openStream());//創建一個輸入輸出流

out = new FileOutputStream(outFileName);

tidy.parse(in, out);//轉換文件

in.close();

out.close();

}catch(IOException e){

System.out.println(this.toString()+e.toString());

}

}

}

 

 

 

 

/Files/Snowfun/Html2XML.zip

/Files/Snowfun/jtidy-r938.zip

要点:

(1)BufferedInputStream()的应用

(2)java扩展标准库org.w3c.tidy.Tidy的使用

(3)URL的使用

注意:

该程序中用到的org.w3c.tidy包在http://sourceforge.net/projects/jtidy/下载。解压后引用build文件夹中的tidy包就ok了。

 

下面是解决转换过程中的乱码问题:

首先将源网页用UTF-8重新编码放到一个新的文件,

还要注意加上:

tidy.setInputEncoding("UTF-8");

才能正确显示

源代码如下:


 

import java.net.URL;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.io.*;


import org.w3c.tidy.Tidy;

public class xml {
private String url;
private String outFileName;
private String errOutFileName;

public xml(String url, String outFileName, String
errOutFileName) {
this.url = url;
this.outFileName = outFileName;
this.errOutFileName = errOutFileName;
}

public void convert() {
URL u;
BufferedInputStream in;
FileOutputStream out;

Logger log = Logger.getLogger("convert");
try {
u = new URL(url);

//Create input and output streams
in = new BufferedInputStream(u.openStream()); // 打开文件,转换为 UTF-8 编码
InputStreamReader isr = new InputStreamReader(in, "GB2312"); // 源文件编码为 gb2312

File tmpNewFile = File.createTempFile("GB2312",".html"); // 转换后的文件,设定编码为 utf-8
out = new FileOutputStream( tmpNewFile ); // 需要将文件转换为字符流
OutputStreamWriter osw = new OutputStreamWriter( out , "UTF-8"); // 指定目标编码为 utf-8
osw.write("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");

char[] buffer = new char[10240]; // 文件缓冲区
int len = 0; // 使用字符读取方式,循环读取源文件内容
while( (len = isr.read(buffer)) !=-1 ) // 转换后写入目标文件中
{
osw.write( buffer, 0, len);
}
osw.close(); // 转换完成
isr.close();
out.close();
in.close();

if( log.isLoggable( Level.INFO)){
log.info("HTML 文档转 UTF-8 编码完成!");
}

//设置tidy
Tidy tidy = new Tidy();
// Set file for error messages
tidy.setErrout(new PrintWriter(new FileWriter(errOutFileName), true));
// Tell Tidy to convert HTML to XML
tidy.setXmlOut(true);
tidy.setInputEncoding("UTF-8");
FileInputStream in0 = new FileInputStream( tmpNewFile );
FileOutputStream out0 = new FileOutputStream(outFileName);

//Convert files
tidy.parse(in0, out0);

//Clean up
in.close();
out.close();
tmpNewFile.delete(); // 删除临时文件

} catch (IOException e) {
System.out.println(this.toString() + e.toString());
}
}

public static void main(String[] args) {
/*
* Parameters are:
* URL of HTML file
* Filename of output file
* Filename of error file
*/

String u="http://www.baidu.com/";
String o="index.xml";
String e="error.xml";

xml t = new xml(u, o, e);
t.convert();
System.out.println("OK!");

}
}

分享到:
评论

相关推荐

    讲html文件转换成xml文件

    本代码实现了将一个html文件转成xml文件

    xml的转化成html

    XML 转换为 HTML 是一种常见的数据转换方式,通过使用 XSL(Extensible Stylesheet Language)语言,对 XML 文件进行变换,生成 HTML 文件。在本实验中,我们将学习如何使用 XSL 对 XML 文件进行变换,生成 HTML ...

    XML文件批量转换CSV文件工具.rar

    这个“XML文件批量转换CSV文件工具”是一款便捷的应用程序,设计用于将XML格式的数据转换成CSV(Comma Separated Values)格式。CSV是一种通用的、轻量级的文件格式,适合于导入和导出到各种数据分析和电子表格软件...

    纯html标签静态调用xml文件及xsl对xml文件的的显示修饰

    将这个`&lt;link&gt;`标签添加到HTML文件(如a.htm)的`&lt;head&gt;`部分,就可以应用XSL转换规则来美化XML数据的显示。 总结一下,纯HTML静态调用XML文件并利用XSL进行显示修饰的流程包括: 1. 使用`&lt;object&gt;`或`&lt;iframe&gt;`...

    html转换xml代码

    ### HTML转换为XML的...虽然转换过程中可能存在一些小的错误,但是最终生成的XML文件仍然能够被浏览器正确解析并展示,同时也能够被DOM等工具解析处理。这样的转换对于需要将HTML文档标准化处理的应用场景非常有用。

    字符串转换成XML格式工具XmlNotepad-v2.5.rar

    为了解决这一问题,我们引入了一款高效的工具——XmlNotepad v2.5,它能快速将大数据量的字符串转换成XML格式,大大提升了工作效率。 XmlNotepad是由Microsoft开发的一款轻量级的XML编辑器,它具有直观的用户界面和...

    http转换xml文件

    本话题主要涉及的是如何将HTTP文件转换为XML文件。HTTP(超文本传输协议)主要用于Web通信,而XML(可扩展标记语言)则是一种结构化数据表示方式,常用于数据交换和存储。下面将详细阐述这一过程,以及VC(Visual ...

    javaxml,xsl,html文件转换.pdf

    Java XML、XSL 和 HTML 文件转换技术详解 本文档主要讲解了 Java 中的 XML、XSL 和 HTML 文件转换技术。通过对 Java 代码的分析,我们可以了解到如何将 XML 文件转换为 HTML 文件,并了解到 XSL 模板的应用。 首先...

    使用XSLT将XML文档转换成HTML文档

    最后,我们将使用 JavaScript 语言来将 XML 文档和 XSLT 文件加载到 HTML 文档中,并将其转换成 HTML 文档。 &lt;html&gt; 使用 XSLT 实现 XML 文档到 HTML 文档的转换 function xslt(){ var XMLdocument1 = new ...

    实现word文件转换成html文件实现在线打开预览word文件

    标题和描述中提到的"实现word文件转换成html文件实现在线打开预览word文件",这是一个关于将Microsoft Word文档转换为HTML格式,以便在网页上预览的技术问题。下面将详细介绍这个过程涉及的关键知识点。 1. **...

    跟踪评级PDF转为html,xml的文件

    5. **转换输出**:最后,将所有元素组合成HTML或XML文件,输出结果。 在实际操作中,可能会遇到一些挑战,如PDF质量参差不齐,文本识别不准确,图像嵌入困难,以及复杂的布局转换问题。解决这些问题可能需要对PDF...

    xml转换html

    可以使用XSLT编写一个样式表来转换这个XML文件: ```xml &lt;html&gt; &lt;h2&gt;Bookstore &lt;h3&gt;&lt;xsl:value-of select="title"/&gt; &lt;p&gt;By &lt;xsl:value-of select="author"/&gt;&lt;/p&gt; &lt;p&gt;Published in ...

    SWF和XML相互转化

    例如,如果你想要将名为"myAnimation.swf"的文件转换为XML,命令可能是: ``` 将SWF转化为XML.exe myAnimation.swf myAnimation.xml ``` 这个过程将生成一个XML文件,该文件详细描述了SWF文件中的所有元素,包括...

    javaxml,xsl,html文件转换[定义].pdf

    Java XML、XSL、HTML 文件转换技术概述 Java XML、XSL、HTML 文件转换是软件开发中的一种常见技术,主要用于将 XML 文件转换为 HTML 文件或其他格式的文件。下面将对该技术进行详细介绍。 XML 文件是什么? XML...

    数据库转化为xml文件

    数据库到XML文件的转换是一个常见的数据交换和存储过程,尤其在需要将结构化数据与不同系统集成时。XML(eXtensible Markup Language)是一种可扩展标记语言,它允许我们以自定义的方式描述数据,使其在不同的软件和...

    如何在Java中将XML文档转换成HTML文档.pdf

    ### 如何在Java中将XML文档转换成HTML文档 #### 核心知识点解析: ##### XML与HTML转换背景 XML(eXtensible Markup Language)和HTML(HyperText Markup Language)虽然都属于标记语言,但各自的功能和应用领域...

    自己编写的从XML到HTML的表单Form转换代码xml2form 使用XSLT客户端实现

    我采用xml文件记录表单中需要的数据,使用XSLT在服务器端或客户端将该xml文件转换成HTML中需要的FORM表单. 该XSLT是一个通用的模式,只需要简单的模仿例子中的xml文件格式,就可以生成所有形式的表单.

    HTML转换为XML

    2. **SgmlReader与XmlTextWriter的使用**:在示例代码中,`SgmlReader`类被用来读取HTML内容并将其转换成符合XML规范的数据流。它能够处理HTML中的不规范性,如不闭合的标签等,从而使其适合作为XML数据源。`...

    将搜狗收藏夹导出的xml文件转换成ie认可的文件

    2. **创建HTML文件**:由于IE浏览器可以导入HTML格式的收藏夹,我们需要将XML数据重新组织成HTML格式。创建一个新的HTML文件,如“搜狗收藏夹_to_IE.html”,并在文件中编写HTML代码来表示每个收藏的链接。HTML代码...

    将XML转化为pdf的demo

    另外,我们还需要一个能够处理XML的库,例如System.Xml命名空间中的类,如XmlDocument,用于解析XML文件。 以下是实现这个转换的基本步骤: 1. **XML解析**:使用System.Xml命名空间中的类(如XmlDocument或...

Global site tag (gtag.js) - Google Analytics