2012-04-03 7 views
7

Ho una tabella html con un ID di thetable. Ha (secondo FireBug), un tag TBODY senza nome e un tag TR senza nome. I tre tag TD all'interno di cui voglio accedere sono senza nome. C'è un selettore CSS che posso usare per fare riferimento a questi tag tr senza nome?Selettore CSS per un TD in una tabella con un ID

ho provato:

table#thetable:nth-child(1)

ma questo non selezionare per quei tag.

Sto utilizzando jsoup.org per inserire questi dati in stringhe. Mi piacerebbe prendere il testo di ogni TD nella tabella (di cui conosco il nome) e mettere tutto ciò in un array.

Qualcosa di simile a questo:

// Pseudocode for all the TDs into an array 
Elements strings = doc.select("table#thetable: children"); 
+0

nth-child nel tuo esempio si riferisce a tabelle che sono n-figlio del genitore (non i figli del tavolo). – Chalky

risposta

4

Se si sta semplicemente cercando di ottenere tutti i vostri td elementi, questo dovrebbe essere sufficiente:

Elements elems = doc.select("table#thetable td"); 

Poi iterare elems, recuperare il testo dal tuo td s e metterli nella propria matrice.

Inoltre, probabilmente si dovrebbe utilizzare una lista di array invece di un array, se non si conosce o non si può controllare il numero di celle vostro tavolo avrà:

Elements elems = doc.select("table#thetable td"); 
List<String> strings = new ArrayList<String>(); 

for (Element e : elems) { 
    strings.add(e.text()); 
} 
+0

Grazie. Non è stato necessario aggiungere la seconda parte :) Ho appena avuto problemi a capire come ottenere tutti gli elementi della tabella con il selettore CSS in Jsoup.Grazie ancora e scusa, avrei dovuto essere chiaro sull'aspetto parsing sin dall'inizio. –

+0

Nessun problema. Non ho scritto alcun codice Java per sempre, quindi sto solo cogliendo l'occasione per ... rivedere;) – BoltClock

4

Hai voglia di accedere a tutte le celle?

#thetable td 

O vuoi solo accedere alla prima riga?

#thetable tr:first-of-type td 
+0

Probabilmente dovrei anche dire che sto analizzando l'HTML in Java usando [Jsoup] (http://www.jsoup.org). Allora produrrà un array? –

+1

@Mark Lyons: Sì. Anche se nessun elemento è abbinato, l'elenco dovrebbe essere vuoto, ma non nullo. – BoltClock

+0

Scusate ragazzi, avrei dovuto essere più specifico. Si prega di dare un'occhiata alla modifica che ho appena fatto. –

1

Penso che questo sia quello che sei cercando. Questo si rivolge la prima fila di celle TD, esclude la riga di intestazione:

http://jsfiddle.net/ckaufman/hGRwc/1/

table#thetable tr:nth-child(1) td{ /*Edit Here*/ } 

Ive incluso alcuni altri esempi nel CSS per voi