2010-07-29 18 views
13

तो मैं इस तरह कुछ एक्सएमएल है:मैं lxml का उपयोग कर पाइथन में xpath से मेल खाने वाले सभी तत्वों को कैसे हटा सकता हूं?

<bar> 
    <foo>Something</foo> 
    <baz> 
    <foo>Hello</foo> 
    <zap>Another</zap> 
    <baz> 
<bar> 

और मैं सभी foo नोड्स निकालना चाहते हैं। कुछ इस तरह

params = xml.xpath('//foo') 
for n in params: 
    xml.getroot().remove(n) 

काम नहीं करता है

ValueError: Element is not a child of this node. 

एक साफ तरीका यह है क्या है देते?

उत्तर

17

कोशिश:

for elem in xml.xpath('//foo') : 
     elem.getparent().remove(elem) 

इसे हटाने यह माता पिता है से, नहीं जड़

+1

(जब तक यह मूल तत्व का एक बच्चा है) यह एक का इलाज काम करता है। धन्यवाद –