解析得到除去标签的txt内容
解析 内容 标签 txt 得到 除去
2023-06-13 09:14:02 时间
NodeListbody_nodes=this.getParser().parse(body_filter);
for(inti=0;i<body_nodes.size();i++)
{
Nodenode=body_nodes.elementAt(i);
Parserbody_parser=newParser(node.toHtml());
TextExtractingVisitorvisitor=newTextExtractingVisitor();
body_parser.visitAllNodesWith(visitor);
body.append(visitor.getExtractedText());
}
TextExtractingVisitor,visitAllNodesWith等类及方法都是Visitor中比较很重要但也很少见的。
下面附源代码:
importjava.io.BufferedWriter;
importjava.io.File;
importjava.io.FileWriter;
importjava.io.IOException;
importjava.util.Date;
importorg.htmlparser.Node;
importorg.htmlparser.NodeFilter;
importorg.htmlparser.Parser;
importorg.htmlparser.filters.AndFilter;
importorg.htmlparser.filters.HasAttributeFilter;
importorg.htmlparser.filters.HasChildFilter;
importorg.htmlparser.filters.TagNameFilter;
importorg.htmlparser.util.NodeList;
importorg.htmlparser.visitors.TextExtractingVisitor;
importcom.extractor.Extractor;
publicclassExtractorHangdianextendsExtractor{
publicvoidextract()
{
BufferedWriterbw=null;
Stringindextime;
Stringtitle;
StringBufferbody=newStringBuffer();;
NodeFiltertime_filter=newAndFilter(newTagNameFilter("font"),newHasAttributeFilter("color","#808080"));
NodeFiltertitle_filter1=newAndFilter(newTagNameFilter("td"),newHasChildFilter(newTagNameFilter("b")));
NodeFilterbody_filter=newAndFilter(newTagNameFilter("td"),newHasChildFilter(newTagNameFilter("p")));
try
{
NodeListtitle_nodes=this.getParser().parse(title_filter1);
Nodenode=title_nodes.elementAt(0);
NodeListnode2=node.getChildren();
//title=node2.elementAt(0).toHtml();/*"\r\n"*/
//title=node2.elementAt(1).toHtml();/*fontcolor="#000080"style="font-size:14.4px*/
//title=node2.elementAt(2).toHtml();/*b*/
title=node2.elementAt(3).toHtml();/*教材征订及教师用书登记通知*/
bw=newBufferedWriter(newFileWriter(newFile(this.getOutputPath()+title+".txt")));
Stringurl_seg1=getInputFilePath().substring(3,30);
intend=getInputFilePath().lastIndexOf(".");
Stringurl_seg2=getInputFilePath().substring(30,end);
Stringurl_seg=url_seg1+".asp?"+url_seg2;
url_seg=url_seg.replaceAll("\\\\","/");
Stringurl="http://"+url_seg;
bw.write(url+NEWLINE);
bw.write(title+NEWLINE);
}
catch(Exceptione)
{
e.printStackTrace();
}
this.getParser().reset();
try
{
NodeListtime_nodes=this.getParser().parse(time_filter);
Nodetime_node=time_nodes.elementAt(1);//这里的“1”表示符合time_filter的第二个元素
indextime=time_node.getNextSibling().toHtml();
bw.write(indextime+NEWLINE);
}
catch(Exceptione)
{
e.printStackTrace();
}
this.getParser().reset();//得到除去标签的所有txt文本
try
{
NodeListbody_nodes=this.getParser().parse(body_filter);
for(inti=0;i<body_nodes.size();i++)
{
Nodenode=body_nodes.elementAt(i);
Parserbody_parser=newParser(node.toHtml());
TextExtractingVisitorvisitor=newTextExtractingVisitor();
body_parser.visitAllNodesWith(visitor);
body.append(visitor.getExtractedText());
}
bw.write(body+NEWLINE);
}
catch(Exceptione)
{
e.printStackTrace();
}
try
{
if(bw!=null)
bw.close();
}catch(IOExceptione)
{
e.printStackTrace();
}
}
}
这里顺便提一下,当年bw没有关掉,怎么读不进去,搞了我好几天,郁闷死了,想起来就火大,注意!!
相关文章
- lxparse:解析列表页链接和详情页内容
- spring boot创建拦截器并解析内容
- ssdp协议内容解析视频_固态硬盘的协议
- java高级编程——网络编程(解析网页中的内容)
- 深度解析内容生成式AI背后的大语言模型
- dotnet OpenXML 解析 PPT 图表 解析日期时间表示内容
- 版本解析 Oracle 最新几位版本及更新内容(oracle后几位)
- C++学生信息管理系统(文件版)源码下载、源码解析和设计思路
- JSP JSTL <x:parse>标签:解析指定的XML内容
- MySQL查询数据条数:细节解析(mysql查询数目)
- Linux系统报文处理流程深度解析(linux报文处理流程)
- Nginx内存内容泄漏:问题复现与修复方案解析
- 探秘Oracle的主目录名:解析数据库核心架构(oracle的主目录名)
- SQL Server库文件解析:如何有效管理数据(sqlserver库文件)
- 深入解析MySQL中的倒序排序功能(mysql中倒序是什么)
- PHP危险函数全解析
- android通用xml解析方法
- PHP线程安全与非线程安全版本的区别深入解析
- Linux目录结构以及目录内的主要内容详细解析
- Thinkphp模板没有解析直接原样输出的解决方法