Come selezionare una cella di tabella specifica utilizzando HTML Agility Pack

html-agility-pack vb.net xpath

Domanda

Devo estrarre campi particolari dalle celle in una tabella HTML. Usando Firebug sono stato in grado di ottenere l'esatto XPath nelle celle di cui ho bisogno (sfortunatamente, le celle non hanno un tag id). Pensavo di poter usare DocumentNode.SelectSingleNode e passare quel percorso, ma non sembra funzionare correttamente. Che cosa sto facendo di sbagliato? O c'è un approccio migliore a questo rispetto a come lo sto facendo? Sfortunatamente, non ho esperienza con XPath, quindi questo si sta rivelando più difficile di quanto mi aspettassi. Ecco quello che ho finora (so che l'HTML è particolarmente disordinato, ma non è nel mio controllo di cambiare):

Dim page As New HtmlAgilityPack.HtmlDocument
Dim node As HtmlAgilityPack.HtmlNode
page.LoadHtml(fileContents)
node = page.DocumentNode.SelectSingleNode("/html/body/form/div[6]/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td[2]")

Molto apprezzato.

Risposta accettata

Firebug forse ha risolto i tag html danneggiati. Se si desidera selezionare e il nodo Html, si consiglia di utilizzare la classe o l'id. Per esempio:

//div[@class='content']//table//tr[1]/td[2]

abbreviare il percorso e utilizzare il selettore di classe o id.

se la tabella ha il proprio ID, puoi usare:

//div[@class='content']//table//tr[1]/td[2]

provalo, troverai XPATH interessante.




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é