J'ai besoin d'analyser un document HTML pour extraire tous les balises H1 et tout le HTML entre eux. J'ai joué avec HtmlAgilityPack pour y parvenir avec un certain succès. Je pourrais extraire toutes les balises H1 en utilisant:Comment obtenir du texte HTML entre les balises H1 en C#
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 suivante H1? Ce HTML pourrait inclure n'importe quoi d'une table/image/lien ou toute autre chose sur une page HTML, mais une balise H1.
Merci d'avance.
Je pense que vous cherchez une solution de coupe-biscuit qui n'existe pas. Vous ne pouvez pas simplement sélectionner tous les éléments XML entre deux éléments aléatoires, pas par aucune méthode que j'ai jamais entendu parler. Ce que vous pourriez faire est une sorte de combinaison de NextElement avec le comportement de marche d'arbre, mais vous devez considérer qu'un H1 pourrait être imbriqué, ainsi vous ne pouvez pas simplement obtenir l'élément frère suivant. – jcolebrand
'H1's ne sont pas autorisés à être imbriqués, puisque' H1's sont seulement autorisés à contenir des éléments en ligne. Un H1 n'est donc pas autorisé à contenir une table. Il est recommandé, bien que n'étant pas une norme, qu'il n'y ait qu'un * élément * H1 dans un document. Si vous contrôlez le HTML, vous devriez en faire plus, um, * sane *, avant de l'analyser. –