my html包含以下形式的标记:
<div class="author"><a href="/user/1" title="View user profile.">Apple</a> - October 22, 2009 - 01:07</div>
我想从每个标签中提取日期,在本例中为“2009年10月22日-01:07”
我实现了javax.swing.text.html.htmleditorkit.parsercallback,如下所示:
class HTMLParseListerInner extends HTMLEditorKit.ParserCallback {
private ArrayList<String> foundDates = new ArrayList<String>();
private boolean isDivLink = false;
public void handleText(char[] data, int pos) {
if(isDivLink)
foundDates.add(new String(data)); // Extracts "Apple" instead of the date.
}
public void handleStartTag(HTML.Tag t, MutableAttributeSet a, int pos) {
String divValue = (String)a.getAttribute(HTML.Attribute.CLASS);
if (t.toString() == "div" && divValue != null && divValue.equals("author"))
isDivLink = true;
}
}
但是,上面的解析器返回“apple”,它位于标记内的超链接中。如何修复解析器以提取日期?
2条答案
按热度按时间a8jjtwal1#
覆盖
handleEndTag
并检查"a"
?然而,这个html解析器来自90年代早期,并且这些方法没有很好地指定。
fkaflof62#