2011-06-24 1 views
1

J'ai utilisé l'analyseur Jtidy en Java pour récupérer le texte du titre.Problème avec le texte du titre en 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 (...) 
    } 
} 

code ci-dessus fonctionne très bien, il est en train de lire le titre à l'index 0'th, si elle est introuvable alors à l'index 1'st, puis à 2'nd index.But ici je deviens question: -Pour une certaine page, le texte du titre est présent au milieu de la page ou en dessous, donc ce code ne fonctionne pas pour de telles pages. De cette façon, pour une telle condition, la durée du programme augmente.Il existe une autre solution, qui lira le titre de la page entière en une seule fois? S'il vous plaît aidez-moi.

+0

Je pense que vous pouvez lancer votre recherche dans la boucle et le casser quand bon résultat trouvé. –

+0

Son problème est probablement qu'actuellement chaque itération est "imbriquée" dans la précédente. – aioobe

Répondre

0

Je vous suggère de le faire comme ceci:

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

Merci, ça m'a aidé – DJ31

+0

De rien. – aioobe

Questions connexes