获取具有已知ID的div下的所有div并迭代它

c# dom foreach html-agility-pack

我正在构建一个抓取OkCupid匹配的应用程序。他们的匹配结果包含看起来像这样的Html。

<div id="match_results">
    <div>person1</div>
    <div>person2</div>
    <div>person3</div>
</div>

我想在div match_results里面做一个foreach人的div。但是,我的C#代码不太对劲。 matchesList只包含一个元素(本身?而不是其中的所有div ...)

<div id="match_results">
    <div>person1</div>
    <div>person2</div>
    <div>person3</div>
</div>

一般承认的答案

你忘了选择儿童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);

输出:

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);



许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因