HttpParser标签类的扩展

HttpParser标签类的扩展

有时候我们要解析的HTML标签,得到某个标签中的内容,但是这个标签类是HttpParser中没有提供的。这时候我们可以自定义这个标签类,然后就可以同HttpParser中的那些一样使用了。方法如下:

第一步:创建一个类(你要解析的html中的那个标签的名字就是类名,并让他继承CompositeTag

            如:我们要解析html中的<font>标签,就创建一个Font

//除了类名,其他的直接复制即可,都是固定的不变的
class Font extends CompositeTag { 
private static final long serialVersionUID = 1L; 
private static final String mIds[] = { "font" }; 
private static final String mEndTagEnders[] = { "font" }; 

public Font() { } 
public String[] getIds() { return mIds; } 
public String[] getEndTagEnders() { return mEndTagEnders; }

 第二步:直接注册使用即可。如下:我们在另外一个类中使用那个Font类作为标签解析html

//插入以下代码即可将<font>标签间的正文打印出来
Parser parser=Parser.createParser(tqyjHtml, "utf-8");
//注册新的节点解析器
PrototypicalNodeFactory p = new PrototypicalNodeFactory();//创建工厂
p.registerTag(new Font()); //把font标签(我们上面创建的类)登记一下
parser.setNodeFactory(p); //放工厂里,以后就可以直接用了
//获取所有font标签
NodeFilter filter = new NodeClassFilter(Font.class); 
NodeList nodeList=parser.extractAllNodesThatMatch(filter); 
//遍历所有font标签,将font标签中的正文内容打印出来
for(int i=0;i<nodeList.size();i++){
System.out.println(nodeList.elementAt(i).toPlainTextString());
}
 

你可能感兴趣的:(HttpParser)