2011-06-24 11 views
1

私は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 (...) 
    } 
} 

は、第1 'のインデックスで見つからない場合には、0番目のインデックスにタイトルを読んで、正常に動作している、そしてここで第2' index.Butで、私は問題を取得しています:-forいくつかのページ、タイトルテキストはページの中央に存在するので、このコードはそのようなページでは機能しません。このように、このような条件では、プログラムの長さが増えています。 1ページ全体からのタイトルですか?私を助けてください。

+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

関連する問題