將 HTML 檔案轉換成 XML

來源:互聯網
上載者:User
xml|轉換 在 Java 專家 Michael Geisler 為 Builder 澳大利亞寫的第一篇文章中,他向讀者展示了如何使用 JTidy 將 HTML 檔案轉換成 XML。

有關 Java 的最重要的事情是有很多擴充標準庫可以作為標準平台的一部分,而且在那些庫中有對 XML 提供了非常多的支援。然而對於某些特定的需要,在標準庫中可能沒有直接的支援。



其實你有兩個選擇:

完全由自己來構建一些東西。這一般很痛苦,而且很費時間。
去“社區”看看是否已經有人遇到了同樣的問題(這種情況非常有可能發生),看他是否樂意與你分享他的成果。
對於這個情況,SourceForge 上有一個非常有用的小項目,叫做 JTidy。JTidy 的Web 網站位於 http://sourceforge.net/projects/jtidy/。

JTidy 提供 HTML 語法檢查和 HTML 的“pretty printing(漂亮列印)”,但是對於你來說,它還允許你將一個 HTML 檔案作為輸入,然後將其轉換成為 XML。JTidy 讀取輸入檔案,然後如果發現有任何不匹配或遺漏的閉合標記,將糾正這些標記,最後輸出一個格式良好的 XML 文檔。

從下面的範例程式碼中可以看到,JTidy 的用法相當簡單。簡單地將 JTidy 執行個體設定為輸出 XML,提供一個輸入 URL,輸出檔案和錯誤檔案,然後啟動轉換過程就可以了。

import java.net.URL;
import java.io.*;
import org.w3c.tidy.Tidy;

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

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

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

Tidy tidy = new Tidy();

//Tell Tidy to convert HTML to XML
tidy.setXmlOut(true);

try {
//Set file for error messages
tidy.setErrout(new PrintWriter(new FileWriter(errOutFileName), true));
u = new URL(url);

//Create input and output streams
in = new BufferedInputStream(u.openStream());
out = new FileOutputStream(outFileName);

//Convert files
tidy.parse(in, out);

//Clean up
in.close();
out.close();

} 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
*/
TestHTML2XML t = new TestHTML2XML(args[0], args[1], args[2]);
t.convert();
}
}





相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。