我正在构建一个抓取OkCupid匹配的应用程序。他们的比赛结果包含类似这样的HTML。
<div id="match_results">
<div>person1</div>
<div>person2</div>
<div>person3</div>
</div>
我想在foreach
div内做一个人的div match_results
。但是,我的C#代码不太正确。matchesList
仅包含一个元素(本身?而不是其中的所有div ...)
HtmlDocument matchesHtmlDoc = new HtmlDocument();
matchesHtmlDoc.LoadHtml(matches);
string matchResultDivId = "match_results";
// match results
HtmlNodeCollection matchesList = matchesHtmlDoc.DocumentNode.SelectNodes("//div[@id = '" + matchResultDivId + "']");
foreach (HtmlNode match in matchesList)
{
//test
Console.WriteLine(match.ToString());
}
您忘记选择子div:
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(matches);
string matchResultDivId = "match_results";
string xpath = String.Format("//div[@id='{0}']/div", matchResultDivId);
var people = doc.DocumentNode.SelectNodes(xpath).Select(p => p.InnerText);
foreach(var person in people)
Console.WriteLine(person);
输出:
person1
person2
person3
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句