📄 tabletag.java
字号:
// HTMLParser Library $Name: v1_6_20060319 $ - A java-based parser for HTML// http://sourceforge.org/projects/htmlparser// Copyright (C) 2004 Somik Raha//// Revision Control Information//// $Source: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tags/TableTag.java,v $// $Author: derrickoswald $// $Date: 2005/04/10 23:20:45 $// $Revision: 1.41 $//// This library is free software; you can redistribute it and/or// modify it under the terms of the GNU Lesser General Public// License as published by the Free Software Foundation; either// version 2.1 of the License, or (at your option) any later version.//// This library is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU// Lesser General Public License for more details.//// You should have received a copy of the GNU Lesser General Public// License along with this library; if not, write to the Free Software// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA//package org.htmlparser.tags;import org.htmlparser.NodeFilter;import org.htmlparser.filters.AndFilter;import org.htmlparser.filters.IsEqualFilter;import org.htmlparser.filters.NodeClassFilter;import org.htmlparser.filters.HasParentFilter;import org.htmlparser.filters.NotFilter;import org.htmlparser.filters.OrFilter;import org.htmlparser.util.NodeList;/** * A table tag. */public class TableTag extends CompositeTag{ /** * The set of names handled by this tag. */ private static final String[] mIds = new String[] {"TABLE"}; /** * The set of end tag names that indicate the end of this tag. */ private static final String[] mEndTagEnders = new String[] {"BODY", "HTML"}; /** * Create a new table tag. */ public TableTag () { } /** * Return the set of names handled by this tag. * @return The names to be matched that create tags of this type. */ public String[] getIds () { return (mIds); } /** * Return the set of end tag names that cause this tag to finish. * @return The names of following end tags that stop further scanning. */ public String[] getEndTagEnders () { return (mEndTagEnders); } /** * Get the row tags within this table. * @return The rows directly contained by this table. */ public TableRow[] getRows () { NodeList kids; NodeClassFilter cls; HasParentFilter recursion; NodeFilter filter; TableRow[] ret; kids = getChildren (); if (null != kids) { cls = new NodeClassFilter (TableTag.class); recursion = new HasParentFilter (null); filter = new OrFilter ( new AndFilter ( cls, new IsEqualFilter (this)), new AndFilter ( // recurse up the parent chain new NotFilter (cls), // but not past the first table recursion)); recursion.setParentFilter (filter); kids = kids.extractAllNodesThatMatch ( // it's a row, and has this table as it's enclosing table new AndFilter ( new NodeClassFilter (TableRow.class), filter), true); ret = new TableRow[kids.size ()]; kids.copyToNodeArray (ret); } else ret = new TableRow[0]; return (ret); } /** * Get the number of rows in this table. * @return The number of rows in this table. * <em>Note: this is a a simple count of the number of {@.html <TR>} tags and * may be incorrect if the {@.html <TR>} tags span multiple rows.</em> */ public int getRowCount () { return (getRows ().length); } /** * Get the row at the given index. * @param index The row number (zero based) to get. * @return The row for the given index. */ public TableRow getRow (int index) { TableRow[] rows; TableRow ret; rows = getRows (); if (index < rows.length) ret = rows[index]; else ret = null; return (ret); } /** * Return a string suitable for debugging display. * @return The table as HTML, sorry. */ public String toString() { return "TableTag\n" + "********\n"+ toHtml(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -