2016-11-02 12 views
1

element.insert(old_element, new_element)を使用してサブ要素を追加することができます。ネストされたサブ要素は、親をルートまで順番に置き換えて挿入することができます。これは、上記の親の交換なしでですか?すなわちlxml - ネストされた要素を挿入する

>>> et.tostring(el) 
>>>> 
""" 
<b> 
    <c/> 
    <c/> 
    <d> 
     <e/> 
      <p> 
       <a> 
        <q/> 
        <q/> 
       <a/> 
      </p> 
     <e/> 
    <d> 
    <c/> 
    <c/> 
<b> 
""" 
>>>> new = insert_nested_child_element(el, "./d/e/p/a", 3, et.Element('new')) 
>>>> et.tostring(new) 
""" 
<b> 
    <c/> 
    <c/> 
    <d> 
     <e/> 
      <p> 
       <a> 
        <q/> 
        <q/> 
        <new/> 
       <a/> 
      </p> 
     <e/> 
    <d> 
    <c/> 
    <c/> 
<b> 
""" 
+0

あなたはデモ用の前と後のサンプルXMLSを追加していただけますか?ありがとう。 – alecxe

+0

ええ - それは終わった。 – category

答えて

0

サブ要素運ぶルートツリーのデータなので、更新されますするには、root使用updated_subelement.getroottree().getroot()

>>> nested_child_parent_results = el.xpath("./d/e/p/a") 
>>> nested_child_parent = nested_child_parent_results[0] 
>>> nested_child_parent.getroottree().getroot() 
関連する問題