2013-05-08 8 views
9

निकालें हालांकि यहां तक ​​कि, यह भी बुनियादी लग सकता है, मैं कैसे मैं Jsoup का उपयोग कर दस्तावेज़ से एक तत्व निकालूँ पूछना चाहूँगा।JSoup तत्वों

मैंने इसकी खोज करने की कोशिश की, लेकिन कोई सफलता नहीं मिली।

Elements myNewElements = doc.getElementsByAttribute("hello"); 

//Now I need to perform some other methods on myNewElements before removing. 
//Hence..suggested method says, 
doc.getElementsByAttribute("hello").remove(); 

यह ठीक काम करता है:

यहाँ समस्या है। लेकिन मुझे विश्वास है कि एक ही तत्वों का चयन बार-बार स्मृति भूख साबित कर सकता है। क्या यह संभव है ?

doc.select(myNewElements).remove(); 

// डॉक्टर से मेरे न्यूलेमेंट्स का चयन करने का प्रयास करें।

+0

'का चयन करें()' विधि तर्क के रूप में Elements' नहीं ले करता है '- यह लेता है * * तार **! http://jsoup.org/apidocs/org/jsoup/nodes/Element.html#select%28java.lang.String%29 – ollo

+0

हाँ, मैंने प्रश्न में उल्लेख किया है। – akshayb

उत्तर

22

आप किसी भी नए तत्व है कि अपने inital चयन से मेल नहीं जोड़ा था, तो आप तत्वों फिर से चयन करने के लिए की जरूरत नहीं है।

तत्वों में प्रत्येक तत्व के माता-पिता का संदर्भ होता है और निकालने() विधि केवल उस बच्चे तत्व को हटाने के लिए अभिभावक को बताती है।

संक्षेप में, बस कर रही:

myNewElements.remove() 

काम करना चाहिए। तत्वों से अधिक

+1

यह कुछ अपवाद दिखा रहा है, लेकिन मुझे तर्क मिला। धन्यवाद। – akshayb

+1

उन अपवादों को पोस्ट करना सहायक होगा। भले ही यह काम कर रहा हो, अपवाद एक अच्छा संकेत है कि कुछ गड़बड़ है। – ollo

0

बेहतर पाश और उनके भीतर निकालें:

for(Element element : doc.select(myNewElements)) 
{ 
    element.remove(); 
} 

वहाँ एक ऐसी ही सवाल है: Parse html with jsoup and remove the tag block

+0

कैसे करें अगर myNewElements.get (0) .remove()? यह हो सकता है? – yozawiratama

+1

इसकी आवश्यकता नहीं है और अतिरिक्त प्रसंस्करण जोड़ता है। जिस रूट तत्व को आप निकालना चाहते हैं उसे हटाकर सभी बाल तत्वों को भी हटा दिया जाता है। –