急!急!急!谁知道关于用java解析html文档? 我觉得你该好好研究一下xml了,那个应该针对你的情况。到java.sun.com上看看xml的学习文档吧,sax和dom应该是最适合的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我已经用过,给你一个例子程序也许对你有帮助package util;import java.io.*;import java.util.*;import javax.swing.text.*;import javax.swing.text.html.*;import javax.swing.text.html.parser.*;/** * 解析HTML文件中特定元素 * LINK href * A href * IMG src * SCRIPT src * */public class ParseHtml{ public static void main(String args[]){ ParseHtml ph = new ParseHtml(); try{ String filename = "d:\\y\\scounix.htm"; BufferedReader brd = new BufferedReader( new FileReader( filename ) ); char[] str = new char[50000]; brd.read(str); String sHtml = new String( str ); startParse( sHtml ); }catch(Exception e){ e.printStackTrace(); } } private static void startParse(String sHtml){ try{ ParserDelegator parser = new ParserDelegator(); HTMLEditorKit.ParserCallback callback = new Callback(); parser.parse( new StringReader(sHtml), callback, true); }catch(Exception e){ e.printStackTrace(); } } static class Callback extends HTMLEditorKit.ParserCallback{ public void handleSimpleTag(HTML.Tag t, MutableAttributeSet a, int pos){ if(t.equals(HTML.Tag.IMG)){ String src= (String)a.getAttribute(HTML.Attribute.SRC); System.out.println("No." + count + " IMG src=" + src); count++; } if(t.equals(HTML.Tag.LINK) ){ String href = (String)a.getAttribute(HTML.Attribute.HREF); System.out.println("No." + count + " LINK src=" + href ); count ++; } } public void handleStartTag(HTML.Tag t, MutableAttributeSet a,int pos){ if(t.equals(HTML.Tag.A) ){ String src= (String)a.getAttribute(HTML.Attribute.HREF); System.out.println("No." + count + " A href=" + src ); count ++; } if(t.equals(HTML.Tag.SCRIPT) ){ String src = (String)a.getAttribute(HTML.Attribute.SRC); System.out.println("No." + count + " SCRIPT src=" + src ); count ++; } } private int count = 1; }}说明:其中的staic class可以改为class to zhangjb(): 非常感谢你的帮助!我是今年4月份学的java,希望能常和你联系。我的email:[email protected];oicq:1013773. 欢迎交流问题,我的email是[email protected] http://www.csdn.net/expert/Topic/224/224190.shtm请看这个!~ 新手提问 java读取txt区分 有关Eclipes的问题 java数据库连接 JAVA如何自定义数据类型。 求救················在线等 请高手指导一下 高分求救:java无法运行程序 一个很有意思的问题的算法 题目怎么翻译呢??求救~ 求助?如何在父窗体中显示子窗体?? JBuilder初学者,帮我推荐几本比较好的书,好吗?(最好能具体点儿,谢谢 ~~~) 怎么样实现管道一个入口,多个出口?
package util;import java.io.*;
import java.util.*;
import javax.swing.text.*;
import javax.swing.text.html.*;
import javax.swing.text.html.parser.*;/**
* 解析HTML文件中特定元素
* LINK href
* A href
* IMG src
* SCRIPT src
*
*/
public class ParseHtml{
public static void main(String args[]){
ParseHtml ph = new ParseHtml(); try{
String filename = "d:\\y\\scounix.htm";
BufferedReader brd = new BufferedReader( new FileReader( filename ) );
char[] str = new char[50000];
brd.read(str);
String sHtml = new String( str ); startParse( sHtml );
}catch(Exception e){
e.printStackTrace();
}
} private static void startParse(String sHtml){
try{
ParserDelegator parser = new ParserDelegator();
HTMLEditorKit.ParserCallback callback = new Callback();
parser.parse( new StringReader(sHtml), callback, true);
}catch(Exception e){
e.printStackTrace();
}
} static class Callback extends HTMLEditorKit.ParserCallback{
public void handleSimpleTag(HTML.Tag t, MutableAttributeSet a, int pos){
if(t.equals(HTML.Tag.IMG)){
String src= (String)a.getAttribute(HTML.Attribute.SRC);
System.out.println("No." + count + " IMG src=" + src);
count++;
}
if(t.equals(HTML.Tag.LINK) ){
String href = (String)a.getAttribute(HTML.Attribute.HREF);
System.out.println("No." + count + " LINK src=" + href );
count ++;
}
} public void handleStartTag(HTML.Tag t, MutableAttributeSet a,int pos){
if(t.equals(HTML.Tag.A) ){
String src= (String)a.getAttribute(HTML.Attribute.HREF);
System.out.println("No." + count + " A href=" + src );
count ++;
}
if(t.equals(HTML.Tag.SCRIPT) ){
String src = (String)a.getAttribute(HTML.Attribute.SRC);
System.out.println("No." + count + " SCRIPT src=" + src );
count ++;
}
} private int count = 1;
}
}
说明:其中的staic class可以改为class
非常感谢你的帮助!我是今年4月份学的java,希望能常和你联系。
我的email:[email protected];oicq:1013773.
请看这个!~