当前位置:  技术问答>java相关

急!急!急!谁知道关于用java解析html文档?

    来源: 互联网  发布时间:2015-01-30

    本文导语:  我先在在写一个程序,用到了java解析html文档。 我的程序运行环境是:windows2000,jdk1.3,xerces1.4.1. 谁能告诉我该用java的哪个包的哪个类,以及具体方法。 我十分着急,在线等候。方法或代码可行就给分。 | ...

我先在在写一个程序,用到了java解析html文档。
我的程序运行环境是:windows2000,jdk1.3,xerces1.4.1.
谁能告诉我该用java的哪个包的哪个类,以及具体方法。
我十分着急,在线等候。方法或代码可行就给分。


|
我已经用过,给你一个例子程序也许对你有帮助
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=/tech-qa-java/article-16152313290214200262.html(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=/tech-qa-java/article-16152313290214200262.html(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

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 谁知道websphere的试用版怎么做掉?
  • 谁知道有类似启动kde的指令startkde,来启动gnome?
  • 谁知道jdbc有什么好一点的书,一定给分
  • 请问JBulider 4的序列号谁知到?能否提供给小弟?谢谢
  • 谁知道jbuilder3的KEY
  • 谁知道在哪儿可以找到Imap 4.5
  • 请问谁知道那有classes.zip for jdk1.2 ?
  • 谁知道哪儿有jbuilder5下载
  • 有谁知道关于Applet中怎么样调用html. 50分全送
  • jbuilder5企业版的序列号谁知道?
  • 谁知道JB的书籍下载?
  • IP地址数字互转 iis7站长之家
  • 谁知道java认证的日期?
  • 谁知道Borland application server 5.0的serial number 和 key?
  • 请问有谁知道那里有Linux系统的ADSL拨号软件下载!谢谢!
  • 谁知道如何写脚本,一开机就执行某程序?
  • 谁知道哪里有jbulider4下载,我的机器跑jbulider5很慢!
  • 谁知道如何使用sygate作二级代理〉??
  • 有谁知道哪有下载 JB6 的地方?谢谢
  • 谁知道MySQL的驱动接口程序在那里下载?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3