आप बल्कि lxml से, मानक पुस्तकालय ElementTree का उपयोग करना चाहते हैं, तो आप एक विशेष पाठ मूल्य के साथ सभी उप तत्वों को खोजने के लिए पुनरावृत्ति का उपयोग कर सकते हैं। उदाहरण के लिए:
import sys
import xml.etree.ElementTree as etree
s = """<root>
<element>A</element>
<element>B</element>
</root>"""
e = etree.fromstring(s)
if sys.version_info < (2, 7):
found = [element for element in e.getiterator() if element.text == 'A']
else:
found = [element for element in e.iter() if element.text == 'A']
print found[0].text # This prints 'A', honestly!
नोट: यदि आप सूची समझ में अपने तत्वों की text
मूल्य के कुछ अलग करना चाहता है।
संपादित करें यह आपके एक्सएमएल पेड़ में किसी भी गहराई पर काम करेगा। उदाहरण के लिए,
s = """<root>
<element>A</element>
<element><sub>A</sub></element>
</root>"""
found = [element for element in e.getiterator() if element.text == 'A']
for f in found:
print f
<Element element at 7f20a882e3f8>
<Element sub at 7f20a882e4d0>
मैंने अपने कार्य के लिए cElementTree पर lxml का उपयोग करना चुना है क्योंकि इसमें बहुत कम मेमोरी ओवरहेड है (स्मृति CPU उपयोग से अधिक महत्वपूर्ण है), यह कोड का अंतिम बिट था जिसे मुझे lxml – Patrick