我想使用Apache Tika从HTML文件中提取某些标签内的文本,例如<dt>
,<dd>
等。
所以我正在编写自定义ContentHandler
,它应该从这些标签中提取信息。
我的自定义ContentHandler
代码如下所示。它还没有完成,但已经没有按预期工作了:
public class TableContentHandler implements ContentHandler {
// key = abbreviation
// value = information / description for abbreviation
private Map<String, String> abbreviations = new HashMap<String, String>();
// current abbreviation
private String abbreviation = null;
// <dd> element contains abbreviation. So this boolean variable will be set when
// <dd> element is found
private boolean ddElementStarted = false;
// this method is not giving contents within <dd> and </dd> tags
public void characters(char[] chars, int arg1, int arg2) throws SAXException {
if(ddElementStarted) {
System.out.println("chars found...");
}
}
// set boolean ddElementStarted to true to indicate that content handler found
// <dd> element
public void startElement(String arg0, String element, String arg2, Attributes arg3) throws SAXException {
if(element.equalsIgnoreCase("dd")) {
ddElementStarted = true;
}
}
}
我的假设是,只要内容处理程序进入startElement()
方法并且元素名称为dd
,我就会设置ddElementStarted = true
然后获取<dd>
内的内容和</dd>
元素,我会检查characters()
方法。
在characters()
方法中,我正在检查ddElementStarted = true
和chars
数组是否包含<dd>
和</dd>
元素内的内容,但它不起作用:(< / p>
我想知道是否
XPath
表达式?我无法在Tika in Action
本书中找到此信息。