Comment obtenir du texte HTML entre les balises H1 en C #

c# html html-agility-pack

Question

J'ai besoin d'analyser un document HTML pour extraire toutes les balises H1 et tout le HTML qui les sépare. J'ai joué avec HtmlAgilityPack pour y parvenir avec un certain succès. Je pourrais extraire toutes les balises H1 en utilisant:

foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//h1"))

Mais comment puis-je extraire tout le code HTML après chaque balise H1 jusqu'à ce que je frappe la balise H1 suivante? Ce code HTML peut inclure tout élément d'un tableau / image / lien ou tout autre élément d'une page HTML autre que la balise H1.

Merci d'avance.

Réponse populaire

Solution possible: obtenez le code HTML complet sous forme de chaîne, remplacez <H1> par un signe que HTML ne sait pas (par exemple, Ü HTML utilise & uuml;), puis divisez la chaîne par ce signe en un tableau.

Maintenant, vous recherchez (avec RegEx par exemple) les nœuds qui ont des balises de début et de fin et ne les analysez que.

Rapide et sale, mais devrait fonctionner.

Veuillez noter que, comme mentionné par drachenstern, les balises H1 imbriquées conduiront à une non-analyse des nœuds parents.



Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi