java分析html文档的例子

原创 2007年09月20日 17:26:00

 这个程序把xml文档中的内容提取出来。里面的包都是jdk自带的包。

  import   java.io.*;  
  import   java.util.*;  
  import   javax.swing.text.*;  
  import   javax.swing.text.html.*;  
  import   javax.swing.text.html.parser.*;
  import   javax.swing.text.html.HTMLEditorKit.ParserCallback;

public class Parser extends ParserCallback
{
 protected String base;
 protected boolean isImg = false;
 protected boolean isParagraph = false;
 protected static Vector<String> element = new Vector<String>();
  protected static String paragraphText = new String();  

 public Parser()
 {
 
 }
 
 public static String getParagraphText()
 {
   return paragraphText;
 }
 public void handleComment(char[] data, int pos)
 {
 }
public void handleEndTag(HTML.Tag t, int pos)
{
   if (t == HTML.Tag.P)
   {
   if (isParagraph)
   {
    isParagraph = false;
   }
  } else if (t == HTML.Tag.IMG)
  {
   if (isImg){
    isImg = false;
   }

  }
 }
 public void handleError(String errorMsg, int pos)
 {
 }
 public void handleSimpleTag(HTML.Tag t, MutableAttributeSet a, int pos)
 {
  handleStartTag(t, a, pos);
 }
 public void handleStartTag(HTML.Tag t, MutableAttributeSet a, int pos)
 {
  if (t == HTML.Tag.P)
  {
   isParagraph = true;
  }else if((t == HTML.Tag.IMG))
   {
  String   src=   (String)a.getAttribute(HTML.Attribute.SRC); 
   if (src != null)
   {
  
     element.addElement(src);
     isImg = true;
   }
   } 
 }
 public void handleText(char[] data, int pos)
 {
 
  if (isParagraph)
  {
   String tempParagraphText = new String(data);
   if (paragraphText != null)
   {
    element.addElement(tempParagraphText);;
 
   }
  }
  }

 
    private   static  void   startParse(String   sHtml){  
                  try{  
                          ParserDelegator   ps   =   new   ParserDelegator();  
                          HTMLEditorKit.ParserCallback   parser   =   new   Parser();  
                          ps.parse(   new   StringReader(sHtml),   parser,   true);
                                 
        System.out.println(getParagraphText());
        Vector link = element;
        for(int i=0;i<link.size();i++)
        {
         System.out.println(link.get(i));
         }
       
                  }catch(Exception   e){  
                          e.printStackTrace();  
                  }  
          }  
 

 public   static   void   main(String   args[]){  
             
   
                  try{  
                          String   filename   ="f://1.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();  
                  }  
          }  
   
     }

相关文章推荐

php实现word转html文档的例子

word文档不适合放到网页上了,如果我们要放到网页中去是需要一个个复制了,如果你还在复制就out了,下文小编来为各位整理一篇php实现word转html文档的例子,希望文章对各位有帮助。 要想完美解决...
  • jaray
  • jaray
  • 2015年10月16日 17:07
  • 5364

使用libtidy解析html文档的小例子一个

#ifndef PARSEPAGE_HPP #define PARFSPAGE_HPP #include #include #include #include #include ...

Java四种读取和创建XML文档的例子教程

XML,即可扩展标记语言(Extensible Markup Language),标准通用标记语言的子集,一种用于标记电子文件使其具有结构性的标记语言。它可以用来标记数据、定义数据类型,是一种允许用户...

JAVA简单的zip文档 文件读取例子

JAVA简单的zip文档 文件读取例子package zipTest.com.test; import java.io.BufferedOutputStream; import java.io.Fi...

Java EE HTML5 WebSocket 编码器与解码器的例子

至少原文要保留,原味没有了.也就没意思了, 原文链接:http://www.byteslounge.com/tutorials/java-ee-html5-websockets-encoder-an...

Java网页资源抓取例子(使用第三方包Jsoup解析Html)

直接上代码: import java.io.IOException; import java.util.ArrayList; import org.jsoup.Jsoup; import org....

JAVA:借用OpenOffice将上传的Word文档转换成Html格式

为什么会想起来将上传的word文档转换成html格式呢?设想,如果一个系统需要发布在页面的文章都是来自word文档,一般会执行下面的流程:使用word打开文档,Ctrl+A,进入发布文章页面,Ctrl...
  • shang02
  • shang02
  • 2016年05月19日 16:28
  • 334

java将文档转换成html页面代码 (doc中的图片生成资源文件)

import java.io.File; import com.jacob.com.*; import com.jacob.activeX.*; /** * @author mini_fly ...

JAVA eclipse(myeclipse)生成帮助文档(html或chm格式)

目录(?)[+] 转自:http://www.blogjava.net/lishunli/archive/2010/01/07/308618.html   Javadoc转换chm帮助文档的四种方...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java分析html文档的例子
举报原因:
原因补充:

(最多只允许输入30个字)