J'ai beaucoup de code de bloc HTML avec le style suivant, j'ai besoin de valeurs de
que j'ai spécifié ces numéros dans un code.
Enfin, je veux mettre toutes ces valeurs dans un fichier XML. Alors, pourriez-vous m'aider à comprendre comment je pourrais obtenir ces valeurs avec HtmlAgilityPack?
Merci d'avance.
<div class="promotion">
<div class="logo">
<img src='http://www.example.com/D.jpg' **(1)**>
</div>
<div class="details">
<p class="date"> 2015/12/12 **(2)** </p>
<p>
<img src="http://www.example.com/DDD.jpg" **(3)** alt="" />
<h3> Some Details **(4)** </h3>
</p>
</div>
</div>
Si votre HTML ressemble à celui que vous avez mis dans votre question, vous pouvez utiliser XPath pour récupérer vos résultats de la manière suivante:
Avec un code précédent comme celui-ci, par exemple pour tester avec votre code HTML:
var html = @"<div class='promotion'>
<div class='logo'>
<img src='http://www.example.com/D.jpg' **(1)**>
</div>
<div class='details'>
<p class='date'> 2015/12/12 **(2)** </p>
<p>
<img src='http://www.example.com/DDD.jpg' **(3)** alt='' />
<h3> Some Details **(4)** </h3>
</p>
</div>
</div>";
var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);
Pour la première image, par exemple, quelque chose comme ceci:
var value = doc.DocumentNode.SelectSingleNode("//div[@class='logo']/img").Attributes["src"].Value;
Pour le second, quelque chose comme ça:
var value = doc.DocumentNode.SelectSingleNode("//p[@class='date']").InnerText;
Pour le troisième:
var value = doc.DocumentNode.SelectSingleNode("//div[@class='details']/p[2]/img").Attributes["src"].Value;
Et pour les quatre:
var value = doc.DocumentNode.SelectSingleNode("//div[@class='details']/p[2]/h3").InnerText;
J'espère que cela vous aidera.