我在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 个索引处读取标题。但是这里我遇到了问题:-对于某些页面,标题文本出现在页面中间或下方,因此此代码不适用于此类页面。这样,对于这种情况,程序的长度会增加。是否有任何其他解决方案,将从整个页面读取标题一口气吗?请帮助我。
最佳答案
我建议你这样做:
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) {
}
}
关于java - Java 中标题文本的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6464302/