2012-04-03 73 views
7

我有一個ID爲thetable的html表。它有(根據FireBug),一個未命名的TBODY標籤和一個未命名的TR標籤。我想要訪問的三個TD標籤是未命名的。有沒有可以用來引用這些未命名的tr標籤的CSS選擇器?用於表中ID爲TD的CSS選擇器ID爲

我已經試過:

table#thetable:nth-child(1)

但這不選擇這些標籤。

我使用jsoup.org將這些數據轉換爲字符串。我想把表格中每個TD的文本(我知道這個名字)並把所有這些都放到一個數組中。

事情是這樣的:

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

第n個孩子在你的榜樣一些其他的例子指的是表他們的父母(不是桌子的孩子)的第十一個孩子。 – Chalky 2016-02-18 22:33:48

回答

4

如果你只是希望得到你的所有td元素,這已經足夠了:

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

然後遍歷elems,從td小號檢索文本,並把它們放在你的陣列英寸

此外,你應該使用一個數組列表,而不是一個數組,如果你不知道或無法控制你的表有多少細胞有:

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

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

謝謝。你不需要添加第二部分:)我只是無法弄清楚如何使用Jsoup中的CSS選擇器獲取所有表格元素。再次感謝和抱歉,我應該從一開始就清楚解析部分。 – 2012-04-03 04:13:53

+0

沒問題。我沒有永遠寫過任何Java代碼,所以我只是藉此機會修改;) – BoltClock 2012-04-03 04:18:25

4

你只是想訪問所有的細胞?

#thetable td 

或者你只想訪問第一行?

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

我也許應該說我正在使用[Jsoup](http://www.jsoup.org)解析Java中的HTML。那會產生一個數組嗎? – 2012-04-03 03:53:10

+1

@馬克里昂斯:是的。即使沒有元素匹配,列表也應該是空的,但不能爲空。 – BoltClock 2012-04-03 03:54:23

+0

對不起,我應該更具體。請看看我剛剛編輯的內容。 – 2012-04-03 04:03:59