Spero che qualcuno possa aiutarmi.HtmlAgilityPack e selezione di nodi e sottonodi
Mettiamoci dire che ho un documento HTML che contiene più div come in questo esempio:
<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>
sto usando HtmlAgilityPack per ottenere il documento html. Quello che ho bisogno di sapere è come posso ottenere gli span per ogni "search_hit" -div?
Il mio primo pensiero è stato qualcosa di simile:
foreach (HtmlAgilityPack.HtmlNode node in doc.DocumentNode.SelectNodes("//div[@class='search_hit']"))
{
foreach (HtmlAgilityPack.HtmlNode node2 in node.SelectNodes("//span[@prop]"))
{
}
}
Ogni div deve essere un oggetto con le campate inclusi come proprietà. I. e.
public class Record
{
public string Name { get; set; }
public string company { get; set; }
public string street { get; set; }
}
E questo elenco è riempito poi:
public List<Record> Results = new List<Record>();
Ma la sto usando XPATH non sta facendo una ricerca nel sottonodo come dovrebbe fare. Sembra che ricerchi l'intero documento ancora e ancora.
Voglio dire, ho già funzionato in questo modo che ottengo solo gli span dell'intera pagina. Ma poi non ho alcuna relazione tra gli span e le div. Mezzi: non so più quale intervallo è correlato a quale div.
Qualcuno conosce una soluzione? Ho già giocato così tanto che ora sono completamente confuso :)
Qualsiasi aiuto è apprezzato!
Vedere la mia risposta al modo di analizzare il codice (soluzione completa di lavoro). –