htmlparser解析th标签
来源:互联网 发布:小提琴音准训练软件 编辑:程序博客网 时间:2024/05/21 17:25
我在用htmlparser解析html的过程中遇到了一个问题,例如以下html代码:
<html><head></head><body><table><tr><th>th_Item</th></tr><tr><td>td_Item</td></tr></table></body></html>
在过滤table标签的时候,只输出了td_Item,而th_Item则不见了踪影。
以下是我过滤的代码:
package xmu.zgy;import org.htmlparser.NodeFilter;import org.htmlparser.Parser;import org.htmlparser.filters.NodeClassFilter;import org.htmlparser.tags.TableColumn;import org.htmlparser.tags.TableRow;import org.htmlparser.tags.TableTag;import org.htmlparser.util.NodeList;public class ThTagDemo {// 详情访问: blog.csdn.net/zgyulongfeipublic static void main(String[] args) throws Exception {String html=""+"<html>" +"<head>" +"</head>" +"<body>" +"<table>" +"<tr><th>th_Item</th></tr>" +"<tr><td>td_Item</td></tr>" +"</table>" +"</body>" +"</html>";Parser parser = new Parser();parser.setInputHTML(html);parser.setEncoding("gbk");NodeFilter filter = new NodeClassFilter(TableTag.class);NodeList nodeList = parser.parse(filter);for(int i = 0; i < nodeList.size(); ++i){if(nodeList.elementAt(i) instanceof TableTag){TableTag tag = (TableTag) nodeList.elementAt(i);TableRow[] rows = tag.getRows();for (int j = 0; j < rows.length; ++j) {TableRow row = (TableRow) rows[j];TableColumn[] columns = row.getColumns();for (int k = 0; k < columns.length; ++k) {String info = columns[k].toPlainTextString().trim();System.out.println(info);}// end for k}// end for j}}}}
td_Item
直观上来看,在TableRow[] rows = tag.getRows();这句这里既然能够输出标签td,也应该能够输出标签th。
而事与愿违,后来找到了解决的方案,在这里记录下来。
要想输出th标签的内容,则需要rows的getHeaders方法,以下是成功的代码:
package xmu.zgy;import org.htmlparser.NodeFilter;import org.htmlparser.Parser;import org.htmlparser.filters.NodeClassFilter;import org.htmlparser.tags.TableColumn;import org.htmlparser.tags.TableHeader;import org.htmlparser.tags.TableRow;import org.htmlparser.tags.TableTag;import org.htmlparser.util.NodeList;public class ThTagDemo {// 详情访问: blog.csdn.net/zgyulongfeipublic static void main(String[] args) throws Exception {String html=""+"<html>" +"<head>" +"</head>" +"<body>" +"<table>" +"<tr><th>th_Item</th></tr>" +"<tr><td>td_Item</td></tr>" +"</table>" +"</body>" +"</html>";Parser parser = new Parser();parser.setInputHTML(html);parser.setEncoding("gbk");NodeFilter filter = new NodeClassFilter(TableTag.class);NodeList nodeList = parser.parse(filter);for(int i = 0; i < nodeList.size(); ++i){if(nodeList.elementAt(i) instanceof TableTag){TableTag tag = (TableTag) nodeList.elementAt(i);TableRow[] rows = tag.getRows();for (int j = 0; j < rows.length; ++j) {TableRow row = (TableRow) rows[j];// the reason to get headers is to parse <th> tagTableHeader[] headers = row.getHeaders();for (int k = 0; k < headers.length; ++k) { System.out.println("tag标签为:" + headers[k].getTagName()); System.out.println("标签的内容为:" + headers[k].getStringText());}TableColumn[] columns = row.getColumns();for (int k = 0; k < columns.length; ++k) {String info = columns[k].toPlainTextString().trim();System.out.println(info);}// end for k}// end for j}}}}
输出的结果为:
tag标签为:TH标签的内容为:th_Itemtd_Item
有时候不开心,就是因为理想与现实之间没有平衡,找到两者的平衡点,生活就会更加丰富多彩。
- htmlparser解析th标签
- HTMLParser解析HTMl标签的实例
- htmlparser解析
- htmlparser解析
- 使用HtmlParser解析HTML
- 使用HtmlParser解析HTML
- 使用HtmlParser解析HTML
- 使用HtmlParser解析HTML
- 解析网页工具HTMLParser
- 学习HTMLParser解析网页
- JAVA htmlParser解析
- htmlparser 基本解析网站
- HTMLParser解析html详解
- htmlparser 解析HTML 思路
- 使用HTMLParser 解析html字符串,去除html标签,提取纯文本
- <th></th><caption></caption>标签
- 自定义HTMLParser的复合标签
- <tbody>标签与<th>标签
- MySQL查看表占用空间大小
- jquery $.ajax验证用户名是否存在示例代码
- Android中的声音部分之我的见解
- 构建Java并发模型框架
- const int *p,const * int p,int const *p
- htmlparser解析th标签
- 小作坊开发与正规团队开发
- 网站导航设计的6大分类
- Java 程序中的多线程
- 可重入的解释
- 使用python过滤html标签
- 编写多线程的 Java 应用程序
- 请求响应机制
- javascript Object.extend的用法