Ottieni tutti i div in un div con ID noto e iterate su di esso

c# dom foreach html-agility-pack

Domanda

Sto creando un'app che esegue la scansione delle corrispondenze di OkCupid. Il loro risultato della partita contiene Html che assomiglia a questo.

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

Voglio fare il div di una persona foreach all'interno del div match_results . Tuttavia, qualcosa non va bene con il mio codice C #. matchesList contiene solo un elemento (stesso? e non tutte le div al suo interno ...)

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

Risposta accettata

Hai dimenticato di selezionare le div child:

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

Produzione:

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



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché