JAVA怎么把HTML转换XML格式

JAVA怎么把HTML转换XML格式,第1张

java中利用HtmlAgilityPack API就可以把html解析成xml了。

在HtmlAgilityPack中常用到的类有HtmlDocument、HtmlNodeCollection、

HtmlNode和HtmlWeb等。

其流程一般是先获取HTML,这个可以通过HtmlDocument的Load()或LoadHtml()来加载静态内容,或者也可以HtmlWeb的Get()或Load()方法来加载网络上的URL对应的HTML。

得到了HtmlDocument的实例之后,就可以用HtmlDocument的DocumentNode属性,这是整个HTML文档的根节点,它本身也是一个HtmlNode,然后就可以利用HtmlNode的SelectNodes()方法返回多个HtmlNode的集合对象HtmlNodeCollection,也可以利用HtmlNode的SelectSingleNode()方法返回单个HtmlNode。

HtmlAgilityPack确实是一个功能强大、体积小的开源HTML解析类库,在本篇仅仅是介绍了其中几个类的用法,但光这些就足以供周公快速实现了许久没有实现的功能,如果让周公用正则表达式来实现类似的功能,时间肯定要比用这个长得多。

java中利用第三方jar包iText 5.4.2就可以实现html转为pdf。

比如有如下index.html文件

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<title>HTML to PDF</title>

<link href="style.css" rel="stylesheet" type="text/css" />

</head>

<body>

<h1>HTML to PDF</h1>

<p>

<span class="itext">itext</span>5.4.2 <span class="description">converting HTML to PDF</span>

</p>

<table>

<tr>

<th class="label">Title</th>

<td>iText - Java HTML to PDF</td>

</tr>

<tr>

<th>URL</th>

<td>http://hmkcode.com/itext-html-to-pdf-using-java</td>

</tr>

</table>

</body>

</html>

样式文件:

h1 {

color:#ccc

}

table tr td{

text-align:center

border:1px solid gray

padding:4px

}

table tr th{

background-color:#84C7FD

color:#fff

width: 100px

}

.itext{

color:#84C7FD

font-weight:bold

}

.description{

color:gray

}

后台转换的接口:

package com.hmkcode

import java.io.FileInputStream

import java.io.FileOutputStream

import java.io.IOException

import com.itextpdf.text.Document

import com.itextpdf.text.DocumentException

import com.itextpdf.text.pdf.PdfWriter

import com.itextpdf.tool.xml.XMLWorkerHelper

public class App

{

public static void main( String[] args ) throws DocumentException, IOException

{

// step 1

Document document = new Document()

// step 2

PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("pdf.pdf"))

// step 3

document.open()

// step 4

XMLWorkerHelper.getInstance().parseXHtml(writer, document,

new FileInputStream("index.html"))

//step 5

document.close()

System.out.println( "PDF Created!" )

}

}

转换结果:

Java中字符串转码,根据实际运用的环境有以下三种方式

使用Java.lang.String这是最常用的方法,先用对应编码获取字节,然后重新构造新编码,示例代码如下:String s = "清山"  

byte[] b = s.getBytes("utf-8")//编码  

String sa = new String(b, "gb2312")//解码:用什么字符集编码就用什么字符集解码

java.io.InputStreamReader/OutputStreamWriter:桥转换读写文件的应用中,可以使用这种方式,直接在IO流构造中转换,示例代码如下:

InputStream is = new FileInputStream("C:/项目进度跟踪.txt")//文件读取  

InputStreamReader isr = new InputStreamReader(is, "utf-8")//解码  

OutputStream os = new FileOutputStream("C:/项目进度跟踪_gb2312.txt")//文件输出  

OutputStreamWriter osw = new OutputStreamWriter(os, "gb2312")//开始编码

java.nio.Charset使用nio中的Charset转换字符,示例代码如下:Charset inSet = Charset.forName("utf-8")  // 解码字符集 

Charset outSet = Charset.forName("gb2312")  // 编码字符集  

CharsetDecoder de = inSet.newDecoder()  // 解码器

CharsetEncoder en = outSet.newEncoder()// 编码


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6095000.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-14
下一篇 2023-03-14

发表评论

登录后才能评论

评论列表(0条)

保存