2012-11-25 36 views
0

我有如下所示的HTML(部分)。我想找到使用的元素:調用getElementById時獲取NULL

org.jsoup.nodes.Element elem = doc.getElementById("date-2011-04-23"); 

但我總是得到一個NULL。誰能幫我?作爲一個支票,我也使用VB.NET編寫代碼,並且可以訪問這個元素。

<td class="" id="date-2011-04-23" data-week="3" data-wkday="6">...</td> 

回答

0

假設您的標記看起來像:

<td class="" id="date-2011-04-23" data-week="3" data-wkday="6">...</td> 

可以使用JSoup Selector API此:

for(Element element : doc.select("#date-2011-04-23")) 
{ 
    // Do something here 
} 

如果你只需要第一個元素:

Element element = doc.select("#date-2011-04-23").first(); 
+0

我會試試看。爲什麼#號? –

+1

'#'是標籤ID的'關鍵字'。例如「#abc」選擇id = abc的標籤。 – ollo

+0

我'[我仍然得到一個null使用選擇。我不明白。如何將完整的HTML元素髮布到stackoverflow?它在我發佈時對HTML做了一些事情。或者,我想解析的頁面是費城費城人的時間表。此網址:http://mlb.mlb.com/schedule/index.jsp?c_id=PHI#y=2011&m=4&calendar=DEFAULT –

0

該reaso ñ您沒有發現HTML中的內容是由執行Javascript的瀏覽器從JSON文件加載時間表,然後將其添加到瀏覽器DOM中。 Jsoup不執行Javascript,因此它只能看到源HTML中的內容。

如果您使用像Charles這樣的調試代理(或Chrome/Firefox中的調試網絡窗格),您可以看到瀏覽器呈現頁面的所有請求。在這個例子中,時間表數據來自http://mlb.mlb.com/gen/schedule/phi/2011_4.json