zl程序教程

您现在的位置是:首页 >  其它

当前栏目

解析得到除去标签的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没有关掉,怎么读不进去,搞了我好几天,郁闷死了,想起来就火大,注意!!