2012-02-23 1 views
0

Donc j'essaye juste l'API de Jsoup et ai une question simple. J'ai une ficelle et je voudrais garder la corde intacte, sauf si elle est passée par ma méthode. Je veux que la chaîne passe par cette méthode et sorte les éléments qui enveloppent les liens. En ce moment j'ai:Jsoup sélectionnant et remplaçant plusieurs <a> éléments

public class jsTesting { 
public static void main(String[] args) { 
    String html = "<p>An <a href='http://example.com/'><b>example</b></a> link and after that is a second link called <a href='http://example2.com/'><b>example2</b></a></p>"; 
    Elements select = Jsoup.parse(html).select("a"); 
    String linkHref = select.attr("href"); 
    System.out.println(linkHref);  
}} 

Ceci retourne la première URL déballée seulement. Je voudrais que toutes les URL soient déballées ainsi que la chaîne d'origine. Merci à l'avance

EDIT: SOLUTION:

Merci beaucoup pour la réponse et j'édita légèrement pour obtenir les résultats que je voulais. Voici la solution complète que j'utilise:

public class jsTesting { 
public static void main(String[] args) { 
    String html = "<p>An <a href='http://example.com/'><b>example</b></a> link and after that is a second link called <a href='http://example2.com/'><b>example2</b></a></p>"; 
    Document doc = Jsoup.parse(html); 
    Elements links = doc.select("a[href]"); 
    for (Element link : links) { 
     doc.select("a").unwrap(); 
    } 
    System.out.println(doc.text()); 
} 

}

Merci encore

Répondre

3

Voici le code corrigé:

public class jsTesting { 
    public static void main(String[] args) { 
     String html = "<p>An <a href='http://example.com/'><b>example</b></a> link and after that is a second link called <a href='http://example2.com/'><b>example2</b></a></p>"; 
     Elements links = Jsoup.parse(html).select("a[href]"); // a with href; 
     for (Element link : links) { 
      //Do whatever you want here 
      System.out.println("Link Attr : " + link.attr("abs:href")); 
      System.out.println("Link Text : " + link.text());  
     }  
    } 
} 
+0

Au lieu de 'link.attr (" ABS: href ")' vous feriez mieux d'utiliser 'link.absUrl (" href ")'. – BalusC

+0

Merci beaucoup, j'apprécie. Cependant, n'est-il pas possible de le faire en utilisant la méthode unwrap()? –

Questions connexes