|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
但是一些大型开发或者是保密型比较高的项目都会用java,原因有2点,一:java是开源的,不怕别人留后门,偷我工具,.net就不一样了,保持微软的一向风格,源代码不公开xml|转换在Java专家MichaelGeisler为Builder澳年夜利亚写的第一篇文章中,他向读者展现了怎样利用JTidy将HTML文件转换成XML。
有关Java的最主要的事变是有良多扩大尺度库能够作为尺度平台的一部分,并且在那些库中有对XML供应了十分多的撑持。但是关于某些特定的必要,在尺度库中大概没有间接的撑持。
实在你有两个选择:
完整由本人来构建一些工具。这一样平常很疾苦,并且很费工夫。
往“社区”看看是不是已有人碰到了一样的成绩(这类情形十分有大概产生),看他是不是愿意与你分享他的功效。
关于这个情形,SourceForge上有一个十分有效的小项目,叫做JTidy。JTidy的Web站点位于http://sourceforge.net/projects/jtidy/。
JTidy供应HTML语法反省和HTML的“prettyprinting(大度打印)”,可是关于你来讲,它还同意你将一个HTML文件作为输出,然后将其转换成为XML。JTidy读取输出文件,然后假如发明有任何不婚配或漏掉的闭合标志,将改正这些标志,最初输入一个格局优秀的XML文档。
从上面的示例代码中能够看到,JTidy的用法相称复杂。复杂地将JTidy实例设置为输入XML,供应一个输出URL,输入文件和毛病文件,然后启动转换历程就能够了。
importjava.net.URL;
importjava.io.*;
importorg.w3c.tidy.Tidy;
publicclassTestHTML2XML{
privateStringurl;
privateStringoutFileName;
privateStringerrOutFileName;
publicTestHTML2XML(Stringurl,StringoutFileName,String
errOutFileName){
this.url=url;
this.outFileName=outFileName;
this.errOutFileName=errOutFileName;
}
publicvoidconvert(){
URLu;
BufferedInputStreamin;
FileOutputStreamout;
Tidytidy=newTidy();
//TellTidytoconvertHTMLtoXML
tidy.setXmlOut(true);
try{
//Setfileforerrormessages
tidy.setErrout(newPrintWriter(newFileWriter(errOutFileName),true));
u=newURL(url);
//Createinputandoutputstreams
in=newBufferedInputStream(u.openStream());
out=newFileOutputStream(outFileName);
//Convertfiles
tidy.parse(in,out);
//Cleanup
in.close();
out.close();
}catch(IOExceptione){
System.out.println(this.toString()+e.toString());
}
}
publicstaticvoidmain(String[]args){
/*
*Parametersare:
*URLofHTMLfile
*Filenameofoutputfile
*Filenameoferrorfile
*/
TestHTML2XMLt=newTestHTML2XML(args[0],args[1],args[2]);
t.convert();
}
}
再说说缺点:首先java功能强大的背后是其复杂性,就拿web来说,当今流行的框架有很多,什么struts,spring,jQuery等等,而这无疑增加了java的复杂性。 |
|