diiN_の回答に基づいて構築してください。これは少し冗長ですが、必要なものを得ることができるはずです。コードはHTML Agility Packに依存します。あなたはナゲットを使ってそれを得ることができます。
var sb = new StringBuilder();
sb.AppendFormat("<html>");
sb.AppendFormat("<div class='x'>");
sb.AppendFormat("<p>this is the text I have.</p>");
sb.AppendFormat("<p>Another part of text.</p>");
sb.AppendFormat("</div>");
sb.AppendFormat("</html>");
const string stringToSearch = "<p>this is the text I have.</p><p>Another part of text.</p>";
var document = new HtmlDocument();
document.LoadHtml(sb.ToString());
var divsWithText = document
.DocumentNode
.Descendants("div")
.Where(node => node.Descendants()
.Any(des => des.NodeType == HtmlNodeType.Text))
.ToList();
var divsWithInnerHtmlMatching =
divsWithText
.Where(div => div.InnerHtml.Equals(stringToSearch))
.ToList();
var innerHtmlAndClass =
divsWithInnerHtmlMatching
.Select(div =>
new
{
InnerHtml = div.InnerHtml,
Class = div.Attributes["class"].Value
});
foreach (var item in innerHtmlAndClass)
{
Console.WriteLine("class='{0}' innerHtml='{1}'", item.Class, item.InnerHtml);
}
asp.netまたはmvcですか? –
MVCでASP.NETまたはASP.NETをフォローしていますか? –
@ Gaurav Singh Jantwalそれは単なるHTMLコードです。私は異なるウェブサイトから(HTML構造が異なる)多数のページを持っており、それぞれの記事のテキストの「html bourders」を特定する必要があります。 tatの後、HTML Agility Packを使用して各ページからinnerTextを取得します。 –