मैं इस तरह की एक एक्सएमएल है:कुशल तरीका
<a>
<b>hello</b>
<b>world</b>
</a>
<x>
<y></y>
</x>
<a>
<b>first</b>
<b>second</b>
<b>third</b>
</a>
मैं सभी <a>
और <b>
टैग के माध्यम से पुनरावृति करने की जरूरत है, लेकिन मैं नहीं जानता कि उनमें से कितने दस्तावेज़ में हैं। इसलिए मैं उस को संभालने के लिए xpath
का उपयोग करें:
from lxml import etree
doc = etree.fromstring(xml)
atags = doc.xpath('//a')
for a in atags:
btags = a.xpath('b')
for b in btags:
print b
यह काम करता है, लेकिन मैं बहुत बड़ी फ़ाइलों है, और cProfile
मुझे पता चलता है कि xpath
बहुत उपयोग करने के लिए महंगा है।
मुझे आश्चर्य है, शायद अनिश्चित काल तक एक्सएमएल-तत्वों के माध्यम से पुन: प्रयास करने के लिए और अधिक कुशल तरीका है?
लिए बहुत उपयोगी है कृपया अनुवाद "बहुत बड़ी" मेगाबाइट में। –