使用lxml将父元素及其子标记附加到新的etree

时间:2017-11-24 10:08:01

标签: python-3.x lxml elementtree

只是一个简单的问题。对不起,如果它是基本的,我尝试谷歌搜索,但没有得到任何有用的东西。这是我的查询。我有2个LXML etree,PFB XML-1:

<?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>

现在,我想在&#34;孩子c =&#39; 1&#39;&#34;附加XML-2;元素及其XML-1中的子元素。我正在循环它的孩子并附加XML-2。有没有办法在没有循环的情况下附加XML-2。我是一气呵成的。提前致谢。不要问我尝试了什么。我当前的代码(循环元素)工作正常。即使有可能,我也不确定。

1 个答案:

答案 0 :(得分:0)

别介意的人,刚刚发现了深度镜检。

如果要将元素复制到lxml.etree中的其他位置,请考虑使用Python标准库中的复制模块创建独立的深层副本:

model.matrix(y ~ x + z, model.frame(lm(y ~ x + z, dat)))