Ich habe eine Menge HTML-Block-Code mit folgendem Stil, ich brauche Werte von
dass ich diese Nummer in einem Code angegeben habe.
Schließlich möchte ich alle diese Werte in eine XML-Datei einfügen. Könnten Sie mir bitte helfen, wie ich diese Werte mit HtmlAgilityPack bekommen könnte?
Danke im Voraus.
<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>
Wenn Sie HTML so verwenden, wie Sie Ihre Frage eingegeben haben, können Sie XPath verwenden, um Ihre Ergebnisse in folgender Reihenfolge abzurufen:
Mit einem früheren Code wie diesem, um zum Beispiel mit Ihrem HTML zu testen:
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);
Für das erste Bild zum Beispiel so etwas:
var value = doc.DocumentNode.SelectSingleNode("//div[@class='logo']/img").Attributes["src"].Value;
Für das zweite etwas so:
var value = doc.DocumentNode.SelectSingleNode("//p[@class='date']").InnerText;
Für die dritte:
var value = doc.DocumentNode.SelectSingleNode("//div[@class='details']/p[2]/img").Attributes["src"].Value;
Und für die vier:
var value = doc.DocumentNode.SelectSingleNode("//div[@class='details']/p[2]/h3").InnerText;
Ich hoffe das hilft dir.