2017-11-24 8 views
0

簡単な質問です。申し訳ありませんが、基本的な場合は、私はグーグルを試みたが、有用な何かを得ていない。ここに私の質問です。lxmlを使用して、親要素をその子タグとともに新しいetreeに追加します。

<?xml version="1.0" encoding="UTF-8"?> 
<parent> 
    <child c="1"> 
     <e1>abc</e1> 
     <e2>abc</e2> 
     <e3>abc</e3> 
     <e4> 
     <e41>xyz</e41> 
     <e41>zyx</e41> 
     </e4> 
    </child> 
    <child c="2"> 
     <e1>abc</e1> 
     <e2>abc</e2> 
     <e3>abc</e3> 
     <e4> 
     <e41>xyz</e41> 
     <e41>zyx</e41> 
     </e4> 
    </child> 
</parent> 

XML-2:

<?xml version="1.0" encoding="UTF-8"?> 
<parent> 
    <child c="3"> 
     <e1>abc</e1> 
     <e2>abc</e2> 
     <e3>abc</e3> 
     <e4> 
     <e41>xyz</e41> 
     <e41>zyx</e41> 
     </e4> 
    </child> 
</parent> 

最終結果:

<?xml version="1.0" encoding="UTF-8"?> 
<parent> 
    <child c="3"> 
     <e1>abc</e1> 
     <e2>abc</e2> 
     <e3>abc</e3> 
     <e4> 
     <e41>xyz</e41> 
     <e41>zyx</e41> 
     </e4> 
    </child> 
    <child c="1"> 
     <e1>abc</e1> 
     <e2>abc</e2> 
     <e3>abc</e3> 
     <e4> 
     <e41>xyz</e41> 
     <e41>zyx</e41> 
     </e4> 
    </child> 
</parent> 

今、私は "とXML-2を追加したい私は、PFB XML-1を2 LXMLのetreeを持っています子c = '1'」要素とXML-1の子要素を含む。私はその子をループし、XML-2を追加しています。ループなしでXML-2を追加する方法はありますか?私は一人で行くことを意味する。前もって感謝します。私が何を試みたのか尋ねないでください。現在のコード(要素をループする)は正常に動作します。私はそれが可能であってもわからない。

+0

は、最終的な結果 – RomanPerekhrest

+0

@RomanPerekhrest追加したばかりを投稿しますどのように最終的な結果が表示されるはずですか? – Arasan

+0

*(ループする要素* - ループする必要はなく、単に 'find'メソッド – RomanPerekhrest

答えて

0

心配しないで、ちょうどdeepcopyについて見つけました。

あなたはlxml.etreeの別の位置に要素をコピーしたい場合は、Pythonの標準ライブラリからコピーモジュールを使用して独立した深いコピーを作成することを検討:

>>> from copy import deepcopy 

>>> element = etree.Element("neu") 
>>> element.append(deepcopy(root[1])) 
関連する問題