Hoffe jemand kann mir helfen.HtmlAgilityPack und Auswahl von Knoten und Unterknoten
Lasst uns sagen, dass ich ein HTML-Dokument, das mehrere divs wie in diesem Beispiel enthält:
<div class="search_hit">
<span prop="name">Richard Winchester</span>
<span prop="company">Kodak</span>
<span prop="street">Arlington Road 1</span>
</div>
<div class="search_hit">
<span prop="name">Ted Mosby</span>
<span prop="company">HP</span>
<span prop="street">Arlington Road 2</span>
</div>
Ich bin HtmlAgilityPack mit dem HTML-Dokument zu erhalten. Was ich wissen muss ist, wie kann ich die Spannen für jedes "search_hit" -div bekommen?
Mein erster Gedanke war so etwas wie diese:
foreach (HtmlAgilityPack.HtmlNode node in doc.DocumentNode.SelectNodes("//div[@class='search_hit']"))
{
foreach (HtmlAgilityPack.HtmlNode node2 in node.SelectNodes("//span[@prop]"))
{
}
}
Jedes div ein Objekt mit den mitgelieferten Spannweiten als Eigenschaften sein sollte. I. e.
public List<Record> Results = new List<Record>();
Aber die XPATH du ist in dem untergeordneten Knoten eine Suche nicht verwenden, da es tun soll:
public class Record
{
public string Name { get; set; }
public string company { get; set; }
public string street { get; set; }
}
Und diese Liste wird dann gefüllt werden. Es scheint, dass es das gesamte Dokument immer wieder durchsucht.
Ich meine, ich habe es bereits funktioniert auf diese Weise, dass ich nur die Spannweiten der ganzen Seite bekommen. Aber dann habe ich keine Beziehung zwischen den Spannen und divs. Bedeutet: Ich weiß nicht mehr, welche Spanne mit welchem div verwandt ist.
Kennt jemand eine Lösung? Ich habe schon so viel gespielt, dass ich jetzt total verwirrt bin :)
Jede Hilfe wird geschätzt!
Siehe meine Antwort für die Möglichkeiten der Analyse Ihres Codes (vollständige Arbeitslösung). –