2012-04-03 11 views
7

के साथ तालिका में एक टीडी के लिए सीएसएस चयनकर्ता मेरे पास thetable की आईडी वाला एक HTML तालिका है। इसमें (फायरबग के अनुसार), एक अज्ञात टीबीओडीवाई टैग, और एक अनाम टीआर टैग है। जिन तीन टीडी टैग्स को मैं एक्सेस करना चाहता हूं वे अनामित हैं। क्या कोई सीएसएस चयनकर्ता है जिसका उपयोग मैं इन अज्ञात tr टैग को संदर्भित करने के लिए कर सकता हूं?आईडी

मैं कोशिश की है:

table#thetable:nth-child(1)

लेकिन यह उन टैग के लिए चयन नहीं करता है।

मैं इस डेटा को स्ट्रिंग में खींचने के लिए jsoup.org का उपयोग कर रहा हूं। मैं तालिका में प्रत्येक टीडी का पाठ लेना चाहता हूं (जिसमें से मुझे नाम पता है) और इसे सब एक सरणी में डाल दें।

कुछ इस तरह:

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

अपने उदाहरण में n वें वाले बच्चे सीएसएस में कुछ अन्य उदाहरण दिए हैं संदर्भित करता है तालिकाओं हैं कि करने के लिए: यह टीडी कोशिकाओं की पहली पंक्ति हेडर पंक्ति को निशाना बनाता है और फिर उसमें उनके माता-पिता का बच्चा (मेज के बच्चे नहीं)। – Chalky

उत्तर

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

धन्यवाद। आपको उस दूसरे भाग को जोड़ने की ज़रूरत नहीं थी :) मुझे बस यह पता लगाना पड़ा कि जेएसओपी में सीएसएस चयनकर्ता के साथ सभी टेबल तत्व कैसे प्राप्त करें।धन्यवाद और क्षमा करें, मुझे शुरुआत से पार्सिंग हिस्से के बारे में स्पष्ट होना चाहिए था। –

+0

कोई समस्या नहीं है। मैंने हमेशा के लिए कोई जावा कोड नहीं लिखा है, इसलिए मैं इस अवसर को अभी ले रहा हूं ... संशोधित करें;) – BoltClock

4

तुम बस कोशिकाओं के सभी का उपयोग करना चाहते हैं?

#thetable td 

या आप बस पहली पंक्ति तक पहुंचना चाहते हैं?

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

मुझे शायद यह भी कहना चाहिए कि मैं [Jsoup] (http://www.jsoup.org) का उपयोग कर जावा में HTML को पार्स कर रहा हूं। क्या वह एक सरणी का उत्पादन करेगा? –

+1

@ मार्क Lyons: हाँ। यहां तक ​​कि यदि कोई तत्व मेल नहीं खाता है, तो सूची खाली होनी चाहिए, लेकिन शून्य नहीं। – BoltClock

+0

क्षमा करें दोस्तों, मुझे और अधिक विशिष्ट होना चाहिए था। कृपया मेरे द्वारा किए गए संपादन पर एक नज़र डालें। –

1

मुझे लगता है कि यह है कि तुम क्या कर रहे हैं खोज रहे हैं

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

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

Ive के लिए आप