建立在diiN_的答案上。這有點冗長,但你應該能夠從中得到你所需要的。代碼取決於HTML Agility Pack。你可以使用nuget獲取它。
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」。之後我將使用HTML AGILITY PACK來從每個頁面獲取innerText。 –