我正在尝试从HTML输入搜索所有以searchResult1,searchResult2开头的节点,直到我的C#程序中的searchResult10。这是我的代码
var results = hdoc.DocumentNode
.Descendants("div")
.Where(x => x.Attributes.Contains("id") &&
x.Attributes["id"].Value.Contains("\"searchResult")).ToList();
for (int i = 0; i < results.Count; i++)
{
rawdata[i] = results[i].InnerHtml.Trim();
}
我的HTMl看起来像这样
<div id="searchResultTable" class="searchReturnData"> some junk html
<li id="searchResult1" class="searchResult searchResultsData_OFF"> searchResult1 html </li>
<li id="searchResult2" class="searchResult searchResultsData_OFF">searchResult2 html </li>
<li id="searchResult3" class="searchResult searchResultsData_OFF">searchResult3 html </li>
</div>
我只想打印searchResult1,searchResult2,searchResult3 html而不是一些垃圾html。我怎么能这样做。
由于 Rashmi
答案 0 :(得分:2)
如果您可以使用HTMLAgilityPack来解析HTML。你可以做这样的事情
HtmlDocument doc = new HtmlDocument();
doc.Load(@"C:\file.html");
var root = doc.DocumentNode;
var a_nodes = root.Descendants("li").Where(c=>c.GetAttributeValue("id","")
.Contains("searchResult")).ToList()