Bonjour! J'utilise c # (framework 3.5sp1) et je veux analyser le morceau de code HTML suivant via regex:
<h1>My caption</h1>
<p>Here will be some text</p>
<hr class="cs" />
<h2 id="x">CaptionX</h2>
<p>Some text</p>
<hr class="cs" />
<h2 id="x">CaptionX</h2>
<p>Some text</p>
<hr class="cs" />
<h2 id="x">CaptionX</h2>
<p>Some text</p>
J'ai besoin de la sortie suivante:
ce que j'ai atm:
<hr.*?/>
<h2.*?>(.*?)</h2>
([\W\S]*?)
<hr.*?/>
cela me donnera tous les sous-titres impairs + contenu (par exemple 1, 3, ...) en raison du <hr/>
final. pour analyser la légende h1, j’ai un autre modèle ( <h1.*?>(.*?)</h1>
), qui ne me donne que la légende mais pas le contenu - ça me va.
Quelqu'un a-t-il un indice / une solution pour moi ou une autre logique (par exemple, analyser le code HTML via un lecteur et l'assigner de cette façon?)?
modifier:
comme certains ont apporté HTMLAgilityPack , j'étais curieux de connaître ce bel outil. J'ai réussi à obtenir le contenu de la <h1>
.
mais ... mon problème est d'analyser le reste. ceci est causé par: les balises pour le contenu peuvent varier - de <p>
à <div>
et <ul>
... atm, cela semble plus ou moins itérer sur l'ensemble du document et sur l'analyse des balises pour balises ...? des allusions?
N'utilisez pas regex pour analyser le HTML. Pensez à utiliser le pack d'agilité HTML .