2013-03-16 15 views
5

Sto provando a selezionare il testo interno di un td con un attributo id con HTMLAgilityPack.HTMLAgilityPack ottiene innerText di un tag td con un attributo id

codice HTML:

<td id="header1"> 5 </td> 
<td id="header2"> 8:39pm </td> 
<td id="header3"> 8:58pm </td> 
... 

Codice:

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); 

doc.LoadHtml(data); 

var nodes = doc.DocumentNode.SelectNodes("//td[@id='header1']"); 

if (nodes != null) 
{ 
    foreach (HtmlAgilityPack.HtmlNode node in nodes) 
    { 
     MessageBox.Show(node.InnerText); 
    } 
} 

continuo a ricevere nodi nulli perché non sono correttamente selezionando il tag td, ma non riesco a capire che cosa ho fatto di sbagliato ...

Modifica:

Ho fatto un errore con header1 e header2, ma ci sono 5 d ifferent td tag con intestazioni da 1 a 5.

+1

Hai controllato gli ID si ha ve preso. '' e stai recuperando da ** '(// td [@ id = 'header1'"); '** –

+1

In html, l'id è' header2' mentre nel codice, è specificato come 'header1'. –

+0

Il tuo codice sembra corretto. Puoi pubblicare i tuoi dati da qualche parte? –

risposta

6

Si sta tentando di selezionare header1 ma l'ID è header2.

Si potrebbe anche usare GetElementById direttamente:

var td = doc.GetElementbyId("header2"); 
1

Hmm .. non credo che stai facendo qualcosa di sbagliato. Il tuo codice dovrebbe darti solo il <td> con id="header1". Se avete, diciamo, header1-header5, si può fare:

for (int i = 1; i <= 5; i++) { 
    var tdNode = doc.DocumentNode.SelectSingleNode(string.Format("//td[@id='header{0}']", i)); 

    //do something with the node here 
} 

anche se vi consiglio di pubblicare la tua intero codice, in modo che possiamo dirvi perché che stai ricevendo null, e anche un modo migliore .. di analizzare i nodi <td> senza fare il loop di cui sopra (ad esempio, qualcosa come //tr[@id='some-id']//td[contains(@id, 'header')]

0

è possibile risolvere il problema utilizzando l'InnerHtml Property ti piace:

var td = doc.GetElementbyId("header2").InnerHtml; 
Problemi correlati