2012-04-03 4 views
7

Ich habe eine HTML-Tabelle mit einer ID von thetable. Es hat (laut FireBug) ein unbenanntes TBODY-Tag und ein unbenanntes TR-Tag. Die drei TD-Tags, auf die ich zugreifen möchte, sind unbenannt. Gibt es einen CSS-Selektor, mit dem ich diese unbenannten tr-Tags referenzieren kann?CSS Selector für ein TD in einer Tabelle mit einer ID

Ich habe versucht:

table#thetable:nth-child(1)

Aber diese wählen nicht für diese Tags.

Ich verwende jsoup.org, um diese Daten in Zeichenfolgen zu ziehen. Ich möchte den Text jedes TD in der Tabelle (von dem ich den Namen kenne) nehmen und alles in ein Array setzen.

Etwas wie folgt aus:

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

n-te-Kind in Ihrem Beispiel bezieht sich auf Tabellen einige andere Beispiele in der CSS enthalten, die N-Kind ihres Elternteils (nicht die Kinder des Tisches). – Chalky

Antwort

4

Wenn Sie einfach nur freuen uns alle Ihre td Elemente zu bekommen, sollte dies ausreichen:

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

Dann elems iterieren, um den Text von Ihrem td s abrufen und sie in Ihrem Array setzen.

Außerdem sollten Sie wahrscheinlich anstelle eines Arrays eine Array-Liste verwenden, wenn Sie nicht wissen, oder nicht kontrollieren können, wie viele Zellen Ihrer Tabelle haben:

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

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

Danke. Du musst diesen zweiten Teil nicht hinzufügen :) Ich hatte nur Schwierigkeiten herauszufinden, wie man alle Tabellenelemente mit dem CSS-Selektor in Jsoup bekommt.Nochmals vielen Dank und Entschuldigung, ich hätte mich von Anfang an über den Parsing-Teil klar sein sollen. –

+0

Kein Problem. Ich habe keinen Java-Code für immer geschrieben, also nehme ich diese Gelegenheit nur um ... zu überarbeiten;) – BoltClock

4

Sie wollen einfach nur alle Zellen zugreifen?

#thetable td 

Oder möchten Sie nur auf die erste Zeile zugreifen?

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

Ich sollte wahrscheinlich auch sagen, dass ich HTML in Java mit [Jsoup] (http://www.jsoup.org) analysiere. Wird das dann ein Array erzeugen? –

+1

@Mark Lyons: Ja. Auch wenn keine Elemente übereinstimmen, sollte die Liste leer sein, aber nicht null. – BoltClock

+0

Sorry Leute, ich hätte genauer sein sollen. Bitte werfen Sie einen Blick auf die Bearbeitung, die ich gerade gemacht habe. –

1

Ich denke, das ist, was du bist Auf der Suche nach. Dies zielt auf die erste Reihe von TD-Zellen, schließt die Kopfzeile:

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

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

Ive für Sie

Verwandte Themen