我有一个xml文件input.xml
<?xml version="1.0"?>
<TestSuite Name="DM123">
<Group Name="TestRoot" ExecutionPolicy="AnyDeviceAnyOrder">
<Parameters>
<Parameter Type="Integer" Name="maxA" Value="1" />
<Parameter Type="Integer" Name="MaxB" Value="120" />
<Parameter Type="String" Name="MaxC" Value="master" />
</Parameters>
<Children>
<Test Name="TestCam" Namespace="TestCase">
<Parameters>
<Parameter Type="Integer" Name="maxA" />
<Parameter Type="Integer" Name="MaxB" />
<Parameter Type="String" Name="MaxC" />
</Parameters>
</Test>
</Children>
</Group>
<Models>
<Model Name= "NewPhone">
</Models>
</TestSuite>
我想在一个新的xml文件中移动所有内容,包括组名和带有组名但不带children标记的行。因此,基本上,除了子标记之外,所有内容都会被添加到一个新的xml文件中
所需的Output.xml:
<?xml version="1.0"?>
<TestSuite Name="DM123">
<Group Name="TestRoot" ExecutionPolicy="AnyDeviceAnyOrder">
<Parameters>
<Parameter Type="Integer" Name="maxA" Value="1" />
<Parameter Type="Integer" Name="MaxB" Value="120" />
<Parameter Type="String" Name="MaxC" Value="master" />
</Parameters>
</Group>
<Models>
<Model Name= "NewPhone">
</Models>
</TestSuite>
我是python新手,所以我做了一些基本编程,只打印子标记和子属性。不知道如何才能达到上述期望的输出。任何帮助都会很棒。提前谢谢
仅供参考-我有多个相同类型的文件,所以如果我可以放置一个函数,该函数可以获取每个文件并移动除子标签以外的所有内容,那将是非常棒的
代码:
import pandas
import xml.etree.ElementTree as ET
import io
from collections import defaultdict
from io import BytesIO
xmlDocument = open("input.xml", 'r').read()
tree = ET.parse('input.xml')
root = tree.getroot()
for child in root:
print(child.tag, child.attrib)
for parameter in root.findall('Group'):
print(parameter.attrib)
让我们从源XML中的一个更正开始: Model元素应为“closed”,因此在“>;”之前添加“/”, 因此,它被写为:
要读取源XML,只需调用:
(xmlDocument=open(…)不需要)
现在,就主要任务而言,我看到你实际上 需要删除组元素中包含的每个子元素
要执行此操作,请运行:
现在,当您打印“简化”XML树时:
您将获得:
多输入文件案例
如果您有多个文件要以这种方式处理,您应该:
此类功能的示例可以是:
相关问题 更多 >
编程相关推荐