使用python在xml文件中插入新行
我想在xml文件中的任何MeasureSymbolGroup行之间插入一行代码。我有一些代码,但工作不正常 我的代码:使用python在xml文件中插入新行,python,xml,Python,Xml,我想在xml文件中的任何MeasureSymbolGroup行之间插入一行代码。我有一些代码,但工作不正常 我的代码: tree = ET.parse(PATH_XML_FILE) root = tree.getroot() for sub in sorted(my_array): setSubValue = False for neighbor in root.iter('Command'): if "SWF" in str(neighbor.attrib):
tree = ET.parse(PATH_XML_FILE)
root = tree.getroot()
for sub in sorted(my_array):
setSubValue = False
for neighbor in root.iter('Command'):
if "SWF" in str(neighbor.attrib):
if re.search(r"\b" + re.escape(sub) + r"\b", neighbor.text): # match whole word only
setSubValue = True
break
if setSubValue == False:
print sub
f = ET.Element('Command Cmd="MeasureSymbolGroup" FlexType="SWF" LogIt="true"' + sub +'\n')
neighbor.insert(1, f)
tree.write(output.xml')
其中my_数组是一个包含字符串列表的数组
基本xml文件:
<?xml version="1.0" encoding="utf-8"?>
<T1Automation>
<Title>AutomationTest</Title>
<LogFilePath>..\Result\log.html</LogFilePath>
<Script Name="Group Measurement" GuiVisible="true" ShowTraces="true" StoreTraces="true" ShutdownConnection="false">
<Commands>
<Command Cmd="PrintTime" />
<Command Cmd="MeasureSymbolGroup" FlexType="SWF" LogIt="true">aaa</Command>
<Command Cmd="MeasureSymbolGroup" FlexType="SWF" LogIt="true">bbb</Command>
<Command Cmd="MeasureSymbolGroup" FlexType="SWF" LogIt="true">ccc</Command>
<Command Cmd="MeasureSymbolGroup" FlexType="SWF" LogIt="true">ddd</Command>
<Command Cmd="MeasureSymbolGroup" FlexType="SWF" LogIt="true">eee</Command>
<Command Cmd="DownloadMeasurement" LogIt="true"/>
<Command Cmd="PrintTime" />
</Commands>
</Script>
</T1Automation>
<?xml version="1.0" encoding="utf-8"?>
<T1Automation>
<Title>AutomationTest</Title>
<LogFilePath>..\Result\log.html</LogFilePath>
<Script Name="Group Measurement" GuiVisible="true" ShowTraces="true" StoreTraces="true" ShutdownConnection="false">
<Commands>
<Command Cmd="PrintTime" />
<Command Cmd="MeasureSymbolGroup" FlexType="SWF" LogIt="true">aaa</Command>
<Command Cmd="MeasureSymbolGroup" FlexType="SWF" LogIt="true">bbb</Command>
<Command Cmd="MeasureSymbolGroup" FlexType="SWF" LogIt="true">ccc</Command>
<Command Cmd="MeasureSymbolGroup" FlexType="SWF" LogIt="true">ddd</Command>
<Command Cmd="MeasureSymbolGroup" FlexType="SWF" LogIt="true">xxx</Command>
<Command Cmd="MeasureSymbolGroup" FlexType="SWF" LogIt="true">eee</Command>
<Command Cmd="DownloadMeasurement" LogIt="true"/>
<Command Cmd="PrintTime" />
</Commands>
</Script>
</T1Automation>
自动测试
..\Result\log.html
aaa
bbb
ccc
ddd
eee
所需的xml文件:
<?xml version="1.0" encoding="utf-8"?>
<T1Automation>
<Title>AutomationTest</Title>
<LogFilePath>..\Result\log.html</LogFilePath>
<Script Name="Group Measurement" GuiVisible="true" ShowTraces="true" StoreTraces="true" ShutdownConnection="false">
<Commands>
<Command Cmd="PrintTime" />
<Command Cmd="MeasureSymbolGroup" FlexType="SWF" LogIt="true">aaa</Command>
<Command Cmd="MeasureSymbolGroup" FlexType="SWF" LogIt="true">bbb</Command>
<Command Cmd="MeasureSymbolGroup" FlexType="SWF" LogIt="true">ccc</Command>
<Command Cmd="MeasureSymbolGroup" FlexType="SWF" LogIt="true">ddd</Command>
<Command Cmd="MeasureSymbolGroup" FlexType="SWF" LogIt="true">eee</Command>
<Command Cmd="DownloadMeasurement" LogIt="true"/>
<Command Cmd="PrintTime" />
</Commands>
</Script>
</T1Automation>
<?xml version="1.0" encoding="utf-8"?>
<T1Automation>
<Title>AutomationTest</Title>
<LogFilePath>..\Result\log.html</LogFilePath>
<Script Name="Group Measurement" GuiVisible="true" ShowTraces="true" StoreTraces="true" ShutdownConnection="false">
<Commands>
<Command Cmd="PrintTime" />
<Command Cmd="MeasureSymbolGroup" FlexType="SWF" LogIt="true">aaa</Command>
<Command Cmd="MeasureSymbolGroup" FlexType="SWF" LogIt="true">bbb</Command>
<Command Cmd="MeasureSymbolGroup" FlexType="SWF" LogIt="true">ccc</Command>
<Command Cmd="MeasureSymbolGroup" FlexType="SWF" LogIt="true">ddd</Command>
<Command Cmd="MeasureSymbolGroup" FlexType="SWF" LogIt="true">xxx</Command>
<Command Cmd="MeasureSymbolGroup" FlexType="SWF" LogIt="true">eee</Command>
<Command Cmd="DownloadMeasurement" LogIt="true"/>
<Command Cmd="PrintTime" />
</Commands>
</Script>
</T1Automation>
自动测试
..\Result\log.html
aaa
bbb
ccc
ddd
xxx
eee
输出:
<?xml version="1.0" encoding="utf-8"?>
<T1Automation>
<Title>AutomationTest</Title>
<LogFilePath>..\Result\log.html</LogFilePath>
<Script Name="Group Measurement" GuiVisible="true" ShowTraces="true" StoreTraces="true" ShutdownConnection="false">
<Commands>
<Command Cmd="PrintTime" />
<Command Cmd="MeasureSymbolGroup" FlexType="SWF" LogIt="true">aaa</Command>
<Command Cmd="MeasureSymbolGroup" FlexType="SWF" LogIt="true">bbb</Command>
<Command Cmd="MeasureSymbolGroup" FlexType="SWF" LogIt="true">ccc</Command>
<Command Cmd="MeasureSymbolGroup" FlexType="SWF" LogIt="true">ddd</Command>
<Command Cmd="MeasureSymbolGroup" FlexType="SWF" LogIt="true">eee</Command>
<Command Cmd="DownloadMeasurement" LogIt="true"/>
<Command Cmd="Print" Format="Bold">Test finished</Command>
<Command Cmd="PrintTime">
<Command Cmd="MeasureSymbolGroup" FlexType="SWF" LogIt="true"fff/>
<Command Cmd="MeasureSymbolGroup" FlexType="SWF" LogIt="true"ggg/>
</Command>
</Commands>
</Script>
</T1Automation>
自动测试
..\Result\log.html
aaa
bbb
ccc
ddd
eee
测试完成
xml解析器会忽略标记之间的空间,那么为什么要特别关注您遇到的问题呢?请发布一个简单的例子。你看到我的新更新的例子文件了吗?请检查一次并给出一些想法。您尚未提供完整的代码或对您尝试执行的操作的清晰描述。Hello@Bhansa,我想在aaa bbb之间插入一行新行,但在我的代码中,它将在此代码之后插入。ccc ddd eee,但在这些行之后插入