2011-06-24 65 views
1

我在java中使用Jtidy解析器來獲取標題文本。Java中標題文本的問題

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'index.But我得到的問題: - 對於有些頁面,標題文本出現在頁面中間或下面,所以這些代碼不適用於這樣的頁面。這樣,對於這種情況,程序的長度會增加。是否有其他解決方案,它會讀取來自整個頁面的標題?請幫助我。

+0

我認爲你可以在循環運行搜索,並打破它,當成功的結果發現。 –

+0

他的問題可能是目前每個迭代都在前一個「嵌套」。 – aioobe

回答

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) { 
    } 
} 
+0

謝謝,它幫助我 – DJ31

+0

不客氣。 – aioobe