次のスタイルのHtmlブロックコードがたくさんあります。次の値が必要です
これらの番号をコードで指定したこと。
最後に、これらすべての値をXMLファイルに入れたいと思います。では、HtmlAgilityPackを使用してこれらの値を取得する方法について教えてください。
前もって感謝します。
<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>
HTMLが質問に入力するようなものである場合は、XPathを使用して、次の順序で結果を取得できます。
このような以前のコードでは、たとえば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);
たとえば最初の画像の場合、次のようになります。
var value = doc.DocumentNode.SelectSingleNode("//div[@class='logo']/img").Attributes["src"].Value;
このような2番目の何かのために:
var value = doc.DocumentNode.SelectSingleNode("//p[@class='date']").InnerText;
3番目の場合:
var value = doc.DocumentNode.SelectSingleNode("//div[@class='details']/p[2]/img").Attributes["src"].Value;
そして4人のために:
var value = doc.DocumentNode.SelectSingleNode("//div[@class='details']/p[2]/h3").InnerText;
これがお役に立てば幸いです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加