我在java中使用了Jtidy解析器来获取标题文本。
String titleText=null;
try {
titleText = doc.getElementsByTagName("title").item(0)
.getFirstChild().getNodeValue();
} catch (Exception e1) {
try {
titleText = doc.getElementsByTagName("title").item(1)
.getFirstChild().getNodeValue();
} catch (Exception e2) {
try {
titleText = doc.getElementsByTagName("title").item(2)
.getFirstChild().getNodeValue();
} cathc (...)
}
}
上面的代码工作正常,它正在读取第0个索引的标题,如果没有找到然后在第1个索引,然后在第2个索引。但在这里我得到问题: - 对于某些页面,标题文本出现在页面的中间或下面,所以这个代码不适用于这样的页面。这样,对于这样的条件,程序的长度越来越大。还有其他解决方案,它将从整个页面读取标题一气呵成?请帮帮我。
答案 0 :(得分:0)
我建议你这样做:
String titleText=null;
NodeList titles = doc.getElementsByTagName("title");
for (int i = 0; titleText == null && i < titles.getLength(); i++) {
try {
titleText = doc.item(i).getFirstChild().getNodeValue();
} catch (SomeException e) {
}
}