首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用lxml将父元素及其子标记附加到新etree

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

Stack Overflow用户
提问于 2017-11-24 18:08:01
回答 1查看 289关注 0票数 0

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

代码语言:javascript
复制
<?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:

代码语言:javascript
复制
<?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>

最终结果:

代码语言:javascript
复制
<?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后面加上"child c='1'“元素及其来自XML-1的子元素。对了,我遍历了它的子元素并追加了XML-2。有没有办法在不循环的情况下追加XML-2?我的意思是一气呵成。提前谢谢。别问我我试过什么。我当前的代码(循环遍历元素)运行良好。而且我也不确定这是否可能。

EN

回答 1

Stack Overflow用户

发布于 2017-11-24 21:02:48

别管了,伙计们,我刚发现了深度拷贝。

如果您希望将元素复制到lxml.etree中的不同位置,请考虑使用Python标准库中的复制模块创建一个独立的深层副本:

代码语言:javascript
复制
>>> from copy import deepcopy

>>> element = etree.Element("neu")
>>> element.append( deepcopy(root[1]) )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47470869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档