是否有工具或脚本来解析XML文件并复制粘贴嵌套的元素

kaosantix12

我有两个说的XML文件-old.xml和new.xml

old.xml:

<GROUPS>
<GROUP>
<ID>1</ID>
<RESULT>123</RESULT>
</GROUP>
<GROUP>
<ID>2</ID>
<RESULT>999</RESULT>
</GROUP>
</GROUPS>

new.xml:

<GROUPS>
<GROUP>
<ID>2</ID>
<RESULT>015</RESULT>
</GROUP>
<GROUP>
<ID>4</ID>
<RESULT>631</RESULT>
</GROUP>
</GROUPS>

现在,我的目标是解析new.xml的每个GROUP,以及new.xml中是否存在具有相似ID的任何组,然后将其结果从old.xml复制并粘贴到new.xml。

例如,在上面的示例文件中,两个.xml中都有ID = 2,我要复制GROUP.ID = 2的new.xml的999标记。

要求的输出:

<GROUPS>
<GROUP>
<ID>2</ID>
<RESULT>999</RESULT>
</GROUP>
<GROUP>
<ID>4</ID>
<RESULT>631</RESULT>
</GROUP>
</GROUPS>

是否有一些简单的XML工具可以执行此类操作,或者我需要创建脚本吗?还是可以通过XSL实现?我不确定。请指导。

安德烈·凯斯利(Andrej Kesely)

使用Python和BeautifulSoup模块的另一种解决方案

xml1 = '''<GROUPS>
<GROUP>
<ID>1</ID>
<RESULT>123</RESULT>
</GROUP>
<GROUP>
<ID>2</ID>
<RESULT>999</RESULT>
</GROUP>
</GROUPS>'''

xml2 = '''<GROUPS>
<GROUP>
<ID>2</ID>
<RESULT>015</RESULT>
</GROUP>
<GROUP>
<ID>4</ID>
<RESULT>631</RESULT>
</GROUP>
</GROUPS>'''

from bs4 import BeautifulSoup

soup1 = BeautifulSoup(xml1, 'xml')
soup2 = BeautifulSoup(xml2, 'xml')

groups_2 = {g.ID.get_text(strip=True): g for g in soup2.select('GROUP:has(> ID)')}

for g in soup1.select('GROUP:has(> ID)'):
    i = g.ID.get_text(strip=True)
    if i in groups_2:
        groups_2[i].replace_with(g)

print(soup2)

印刷品:

<?xml version="1.0" encoding="utf-8"?>
<GROUPS>
<GROUP>
<ID>2</ID>
<RESULT>999</RESULT>
</GROUP>
<GROUP>
<ID>4</ID>
<RESULT>631</RESULT>
</GROUP>
</GROUPS>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何复制粘贴已经存在的文件?

来自分类Dev

从 csv 复制粘贴文件列表

来自分类Dev

从Gsheet文件复制粘贴Google Apps脚本代码时出现问题

来自分类Dev

是否可以编写脚本来根据该行中的日期复制、粘贴和删除整行?(谷歌表格)

来自分类Dev

git checkout修改后的文件,没有复制粘贴的完整文件路径

来自分类Dev

在浏览器或OSX中复制粘贴的bug或功能是否具有双倍空格?

来自分类Dev

从Excel复制粘贴

来自分类Dev

通过RDP复制粘贴,文件大小有限制吗?

来自分类Dev

保护文件或文件夹免于复制粘贴

来自分类Dev

VBA Excel匹配复制粘贴是否其他

来自分类Dev

在复制粘贴之前检查值是否存在

来自分类Dev

在大型Excel文件的列中复制粘贴重复的值

来自分类Dev

在大型Excel文件的列中复制粘贴重复的值

来自分类Dev

复制粘贴后如何对齐文本文件?

来自分类Dev

#include和复制粘贴之间有什么区别?

来自分类Dev

Windows之间的gVim复制粘贴有什么问题?

来自分类Dev

禁用所有键,但复制粘贴组合

来自分类Dev

Shell脚本来解析巨大的日志文件

来自分类Dev

逐字复制粘贴公式

来自分类Dev

骨干-复制粘贴网址

来自分类Dev

在zsh中复制粘贴

来自分类Dev

根据日期复制粘贴

来自分类Dev

Excel VBA复制粘贴

来自分类Dev

复制粘贴范围的宏

来自分类Dev

VBA 复制粘贴数据

来自分类Dev

复制粘贴到终端?

来自分类Dev

VBA 复制粘贴循环

来自分类Dev

Perl脚本来解析需要身份验证的Jenkins作业(config.xml)文件

来自分类Dev

是否有人拥有Mac Terminal脚本来删除隐藏文件?