1

我在 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 个索引处。但是这里我遇到了问题:-对于某些页面,存在标题文本在页面中间或下方,因此此代码不适用于此类页面。这样,在这种情况下,程序的长度会增加。有没有其他解决方案,可以一次性读取整个页面的标题?。请帮我。

4

1 回答 1

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) {
    }  
}
于 2011-06-24T06:47:56.447 回答