【发布时间】:2015-08-05 09:40:25
【问题描述】:
我有一个问题,正在寻找解决方案。
我想根据条件删除该行。例如 xml 文件是
<app>
.
.
<process>
<tag>any tag</tag>
<trigger order="1" name="activity1" perform="y">
<external>
<action name="check_req"/>
<action name="event"/>
</external>
<var name="type"/>
<var name="user" />
</trigger>
</process>
<process>
<tag>any tag</tag>
<trigger order="3" name="activity1" perform="y">
<external>
<action name="check_req"/>
<action name="event"/>
<action name="ckeck"/>
</external>
<var name="type"/>
<var name="user" />
</trigger>
</process>
<process>
<tag>any tag</tag>
<trigger order="2" name="activity1" perform="y">
<external>
<action name="event"/>
<action name="ckeck"/>
</external>
<var name="type"/>
<var name="user" />
</trigger>
</process>
<process>
<tag>any tag</tag>
<trigger order="1" name="activity1" perform="y">
<external>
<action name="check_req"/>
<action name="event"/>
<action name="ckeck"/>
</external>
<var name="type"/>
<var name="user" />
</trigger>
</process>
<process>
<tag>any tag</tag>
<trigger order="4" name="activity1" perform="y">
<external>
<action name="ckeck"/>
<action name="check_req"/>
</external>
<var name="type"/>
<var name="user" />
</trigger>
</process>
</app>
所以我想从这段代码中删除<action name="ckeck"/>这行,只要在触发器中出现这两个动作
<action name="ckeck"/>
<action name="ckeck_req"/>
或
<action name="ckeck_req"/>
<action name="ckeck"/>
所以我必须删除行 <action name="ckeck"/> 只有在上述两个动作同时发生的情况下,否则它不会删除任何行。
所以我是 python 语言的新手,所以我无法做这件事。问题在于该文件包含许多触发块,其中一些既包含动作块,又包含仅一个动作块。特定的行是仅当给定情况发生时才删除
【问题讨论】:
-
表示如果下一个标签是
<action name="ckeck_req"/>,则必须删除<action name="ckeck"/>标签? -
可以是任意顺序。动作顺序不固定。在这两个动作之间也可以有许多动作块。
标签: python python-2.7 python-3.x subprocess