pythonlxml:将值从一个xml文件复制到另一个元素匹配的地方

2024-10-05 17:34:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个xml文件:一个包含示例数据(包含我需要的所有元素),另一个包含真实数据(但没有包含所有元素)。我想将实际值从第二个文件复制到元素名匹配的第一个文件中。在

我想用迭代器实现这个目标

文件1

  <VKORG>str1234</VKORG>
  <VTWEG>str1234</VTWEG>
  <SPART>str1234</SPART>
  <KUNNR>str1234</KUNNR>
  <KDGRP>str1234</KDGRP>
  <PLTYP>str1234</PLTYP>
  <KONDA>str1234</KONDA>
  <KONDM>str1234</KONDM>
  <WAERK>str1234</WAERK>
  <MATNR>str1234</MATNR>

文件2

^{pr2}$

在本例中,将遇到文件2中的3个字段,而文件1中的其余字段将保持原样(因为文件2中没有匹配的元素)。在

实际的文件不是平面的,有多层嵌套元素,可能还有多个根元素。在

泰铢


Tags: 文件数据元素xmlspartmatnrvtwegvkorg
1条回答
网友
1楼 · 发布于 2024-10-05 17:34:40

我可以通过创建一个包含实际值的文件索引来实现。在

然后遍历要填充到的文件,在索引中查找。比如:

src = lxml.etree.parse('real.xml')
ix = dict()
for n in src.getroot().iterdescendants():
    ix[n.tag] = n

dest = lxml.etree.parse('template.xml')
for n in dest.getroot().iterdescendants():
    if n.tag in ix:
        n.text = ix[n.tag].text

你说它在文件方面更复杂,所以我很难说清楚。在

编辑:我还没有测试上面的代码

相关问题 更多 >