HtmlAgilityPack und Auswählen von Knoten und Unterknoten

Hoffe jemand kann mir helfen.

Können sagen, ich habe ein html-Dokument mit mehreren divs wie in diesem Beispiel:

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

Im mit HtmlAgilityPack, um die html-Dokument. Was ich wissen muss ist, wie bekomme ich die Spannweiten für die einzelnen "search_hit"-div?

Mein Erster Gedanke war etwas wie:

foreach (HtmlAgilityPack.HtmlNode node in doc.DocumentNode.SelectNodes("//div[@class='search_hit']"))
{
     foreach (HtmlAgilityPack.HtmlNode node2 in node.SelectNodes("//span[@prop]"))
     {

     }
}

Jedes div-Element ein Objekt mit dem mitgelieferten umfasst als Eigenschaften.
I. e.

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:

public List<Record> Results = new List<Record>();

Aber die XPATH-im mit ist nicht eine Suche in die Unterknoten wie er es tun sollte. Es scheint, dass es durchsucht das gesamte Dokument wieder und wieder.

Ich meine, ich hab schon das es funktioniert, dass ich nur das die Spannweiten der gesamten Seite. Aber dann habe ich keine Beziehung zwischen den beiden spans und divs. Bedeutet: ich weiß nicht mehr, welche Zeitspanne ist in Bezug auf die div.

Weiß jemand eine Lösung? Ich habe bereits rumprobiert, dass viel, dass ich bin Total verwirrt jetzt 🙂

Jede Hilfe ist willkommen!

InformationsquelleAutor der Frage The Jack | 2013-02-21

Schreibe einen Kommentar