CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

有没有函数从html文本中获取纯文本内容???

楼主xh_zhou(一介夫)2002-05-08 14:27:08 在 Java / J2SE / 基础类 提问

我需要从html文件中获取正文内容,有没有函数从html文本中获取纯文本内容???急用!!!!,谢谢了 问题点数:100、回复次数:19Top

1 楼GJA106(中文字符)回复于 2002-05-08 14:48:12 得分 30

可以用java文件流来读取。  
  然后判断html的标志关键字:如果是正文则读取。  
  html的标志关键字,自己去查吧(如:<html></html><title>...)Top

2 楼xiaobi_liang(淡泊以明志,宁静以致远...)回复于 2002-05-08 14:53:07 得分 0

上面的方法不错呀Top

3 楼xh_zhou(一介夫)回复于 2002-05-08 15:13:08 得分 0

有没有这方面的函数呢?我不想自己写函数来分析html内容,如果自己写函数恐怕很复杂,因为html那么多标签,我必须一个个分析,太麻烦了Top

4 楼worldheart(www.open-v.com)回复于 2002-05-08 15:26:38 得分 10

我建议你看看:  
   
   
          import   java.io.*;  
          import   java.nio.*;  
          import   java.nio.channels.*;  
         
          public   class   worldheart   {  
                  public   static   void   main(String   args[])    
                                                                        throws   IOException   {  
           
                          //   check   command-line   arguments  
           
                          if   (args.length   !=   2)   {  
                                  System.err.println("missing   filenames");  
                                  System.exit(1);  
                          }  
           
                          //   get   channels  
           
                          FileInputStream   fis   =    
                                                        new   FileInputStream(args[0]);  
                          FileOutputStream   fos   =    
                                                      new   FileOutputStream(args[1]);  
                          FileChannel   fcin   =   fis.getChannel();  
                          FileChannel   fcout   =   fos.getChannel();  
           
                          //   allocate   buffer  
           
                          ByteBuffer   buf   =    
                                                  ByteBuffer.allocateDirect(8192);  
           
                          //   do   copy  
           
                          long   size   =   fcin.size();  
                          long   n   =   0;  
                          while   (n   <   size)   {  
                                  buf.clear();  
                                  if   (fcin.read(buf)   <   0)   {  
                                          break;  
                                  }  
                                  buf.flip();  
                                  n   +=   fcout.write(buf);  
                          }  
           
                          //   finish   up  
           
                          fcin.close();  
                          fcout.close();  
                          fis.close();  
                          fos.close();  
                  }  
          }  
  Top

5 楼tomxutomxu(shprog)回复于 2002-05-08 15:27:42 得分 0

看来你所说的正文应该是仅仅文字,不含格式的,那样你只要取出所有<>之外的内容就可以了,不要一个一个分析,反正不需要格式。Top

6 楼liqingh()回复于 2002-05-08 15:31:30 得分 10

看看是不是这个!!!!!!!!!  
  import   java.net.*;  
  import   java.io.*;  
   
  public   class   GetHTML   {  
  public   static   void   main(String   args[]){  
  if   (args.length   <   1){  
  System.out.println("USAGE:   java   GetHTML   httpaddress");  
  System.exit(1);  
  }  
  String   sURLAddress   =   new   String(args[0]);  
  URL         url   =   null;  
  try{  
        url   =   new   URL(sURLAddress);  
  }catch(MalformedURLException   e){  
        System.err.println(e.toString());  
                                        System.exit(1);  
  }  
  try{  
                                        InputStream   ins   =   url.openStream();  
        BufferedReader   breader   =   new   BufferedReader(new   InputStreamReader(ins));  
                                        String   info   =   breader.readLine();  
                                        while(info   !=   null){  
                                                  System.out.println(info);  
                                                  info     =   breader.readLine();  
        }  
  }  
                                  catch(IOException   e){  
        System.err.println(e.toString());  
                                        System.exit(1);  
  }  
  }  
  }Top

7 楼xh_zhou(一介夫)回复于 2002-05-08 15:44:54 得分 0

tomxutomxu(shprog)   :你理解的不错,不过你所说的方法行不通,因为文本正文重也可能包括<>  
  比喻说:  
  <html>  
  <body>  
  <font   size="5">  
  <hello   world>  
  </font   >  
  </body>  
  </html>  
  我想获取其中的<hello   world>  
   
  ==============  
  我想从邮件获取邮件正文,之后分析正文,如果邮件正文是纯文本就很好办,直接分析即可,大有时候用户通过outlook或者web方式发送的很可能是html格式的,所以我必须从html格式中提取有用的纯文本Top

8 楼newman0708(nch)回复于 2002-05-08 15:46:47 得分 10

你用datainputstream,dataoutputstream,  
  对指定网址的网页进行数据流的访问,思路是肯定可以的。  
  但是我的机子不行,不能实现。  
  祝你成功!Top

9 楼xh_zhou(一介夫)回复于 2002-05-08 16:23:26 得分 0

兄弟们,帮帮忙呀!!!!!11Top

10 楼xioyoo(逍遥)回复于 2002-05-08 16:33:17 得分 0

麻烦大了:)Top

11 楼xh_zhou(一介夫)回复于 2002-05-08 16:44:39 得分 0

是呀,仔细想想真的很麻烦呀,不知道那位仁兄有没有好的办法?Top

12 楼wangwenyou(王文友)回复于 2002-05-08 16:47:59 得分 20

不建议你自己处理,最好找个合适的Html解析器  
  如果需要自己处理,也请使用正则表达式来匹配Top

13 楼wangwenyou(王文友)回复于 2002-05-08 16:58:31 得分 0

其实最简单的处理,就是去除   <   >   之中的字符串  
  但这样简单处理,难免会留下一些你不要的垃圾,扩展一下,应该没问题的Top

14 楼xioyoo(逍遥)回复于 2002-05-08 17:07:09 得分 0

楼上大哥的办法不错啊,  
  但是又有好多新情况要考虑罗:  
      for   example:  
      <   6>3>  
      <我今天买了本<<thinking   in   java>>!>  
                                ~~                                 ~~Top

15 楼xh_zhou(一介夫)回复于 2002-05-08 17:22:45 得分 0

简单的除去<>之中的内容肯定是不行的,因为规定的纯文本格式中也包括<>,而且我还需要通过<>来识别各个子段,使用html解析器可能可以解决,我查查资料,先谢了,如果谁了解这方面的内容请多多指教Top

16 楼wangwenyou(王文友)回复于 2002-05-08 17:31:24 得分 0

我前几天给人找了一个,很简单,但应该能满足你的需求  
  http://www.csdn.net/Expert/TopicView1.asp?id=698524Top

17 楼xh_zhou(一介夫)回复于 2002-05-09 13:20:03 得分 0

问题还没有完全解决,欢迎继续提意见,先谢了Top

18 楼jimjxr(宝宝猫)回复于 2002-05-09 16:22:53 得分 0

看看这个http://sourceforge.net/projects/jtidyTop

19 楼skyyoung(路人甲)回复于 2002-05-10 10:13:01 得分 20

你想要HTML   parser吗,我这里有个,给你EMAIL我,我寄信给你。  
  但我没有测试过。Top

相关问题

  • 什么函数可以获取剪贴板文本?(API)
  • 怎样获取html文本
  • 怎样获取函数的地址?
  • 如何获取函数地址
  • 获取password框的文本;
  • 急:AfxMessageBox函数中如何分行显示长文本,有否其他函数
  • 如何将文本框对像作为变量传给函数,由函数设置这个文本框的值
  • 怎样获取一个函数的地址,然后利用函数地址再调用该函数?
  • 如何用PHP mail函数发送超文本邮件
  • 在控件中动态显示文本用哪个函数?

关键词

  • .net
  • 函数
  • 文本
  • 内容
  • html
  • args
  • 中获取
  • 有没有
  • import java

得分解答快速导航

  • 帖主:xh_zhou
  • GJA106
  • worldheart
  • liqingh
  • newman0708
  • wangwenyou
  • skyyoung

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo