LXML etree将现有(已解析的)元素作为子元素添加到另一个(已解析的)元素

问题描述 投票:0回答:1

我有两个XML结构,xml_1xml_2

xml_1是我这样创建的结构:

xml_1 = etree.Element('xml_1_root')

xml_2是我从现有XML数据中解析出来的结构,例如:

xml_2 = etree.parse(xml_2.xml).getroot()

我想做这样的事情:

for node in xml_2.findall("node"):
    etree.SubElement(xml_1, node)

使得node中的所有结构作为子代添加到新创建的xml_1结构中。

问题是,SubElement方法(显然)在这里不起作用,因为它是意外使用的。

我的问题是:lxml.etree库是否有一种方法可以将现有(已分析)的元素添加为子元素,以便保留所有属性,文本和子节点信息?

问题是xml_2中的许多节点都有子节点(其中许多[[also都有子节点,而我宁愿避免将它们递归提取以细粒度地提取所有信息。

Note:这不是如何从头开始创建etree子元素的问题。这是一个如何在保留现有数据结构的同时将现有元素添加到另一棵树的问题。

我有两个XML结构,xml_1和xml_2 xml_1是这样创建的结构:xml_1 = etree.Element('xml_1_root')xml_2是我从现有XML数据中解析出来的结构,例如: 。
python xml parsing lxml elementtree
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.