2013-07-05 4 views
1

tout maître de jsoup peut-il me dire quelques suggestions pour filtrer html au texte/string? J'ai essayé d'appeler le texte() de Document. Mais tous les tags/éléments seront filtrés. Mon but est de filtrer certaines balises spécifiées.Jsoup filtre seulement quelques balises de html au texte

i.e.: J'ai texte html comme:

<div>hello<p>world</div>,<table><tr><td>xxx</td></tr> 

pour obtenir le résultat:

<div>hello<p>world</div>,xxx 

qui a filtré les mots clés.

+0

Pour clarifier: Vous voulez sortir le html mais sans les balises? – selig

+0

@selig oui vous avez raison. Tous les tags ne doivent pas être supprimés, juste ce que je veux. – TeeTracker

Répondre

0

Je ne peux pas tester cela maintenant, mais je pense que vous voulez écrire une fonction récursive qui traverse l'arborescence et imprime chaque nœud en fonction d'une condition. Ce qui suit est un exemple de ce à quoi cela pourrait ressembler mais je pense que vous devrez le modifier pour mieux répondre à vos besoins.

Document doc = JSoup.parse(page_text); 
recursive_print(doc.head()); 
recursive_print(doc.body()); 

... 

private static Set<String> ignore = new HashSet<String>(){{ 
    add("table"); 
    ... 
}}; 
public static void recursive_print(Element el){ 
    if(!ignore.contains(el.className())) 
    System.out.println(el.html()); 
    for(Element child : el.children()) 
    recursive_print(child); 
} 
+0

C'est ce que je veux. THX – TeeTracker

Questions connexes