関連する要素のリストのリストがあり、そのスニペットを以下に示します。config
とaction
は の子ですcommand
:
all1= [[<Element '{http://clish.sourceforge.net/XMLSchema}COMMAND' at 0x7ff2ae48b690>, <Element '{http://clish.sourceforge.net/XMLSchema}PARAM' at 0x7ff2ae48b710>, <Element '{http://clish.sourceforge.net/XMLSchema}ACTION' at
0x7ff2ae48b750>, <Element '{http://clish.sourceforge.net/XMLSchema}CONFIG' at
0x7ff2ae48b790>], [<Element '{http://clish.sourceforge.net/XMLSchema}COMMAND' at
0x7ff2ae48b890>, <Element '{http://clish.sourceforge.net/XMLSchema}CONFIG' at
0x7ff2ae48b8d0>, <Element '{http://clish.sourceforge.net/XMLSchema}ACTION' at
0x7ff2ae48b950>], [<Element '{http://clish.sourceforge.net/XMLSchema}COMMAND' at
0x7ff2ae48ba10>, <Element '{http://clish.sourceforge.net/XMLSchema}CONFIG' at
0x7ff2ae48ba50>, <Element '{http://clish.sourceforge.net/XMLSchema}ACTION' at
0x7ff2ae48bad0>], [<Element '{http://clish.sourceforge.net/XMLSchema}COMMAND' at
0x7ff2ae48bb90>, <Element '{http://clish.sourceforge.net/XMLSchema}CONFIG' at
0x7ff2ae48bbd0>, <Element '{http://clish.sourceforge.net/XMLSchema}ACTION' at
0x7ff2ae48bc50>]]
これは次によって生成されます。
commands = root.findall('{http://clish.sourceforge.net/XMLSchema}'
'VIEW/{http://clish.sourceforge.net/XMLSchema}COMMAND')
command_string = ""
all1 = []
for command in commands:
all1.append(list(command.iter()))
all1 = [x for x in all1 if len(x) > 2]
print all1
各アクション要素のテキストを各構成タグの属性に変更したいと考えています。
これが私が意味することの例です:
<COMMAND name="shutdown"
help="Shutdown the selected interface">
<CONFIG priority="0x7F01" />
<ACTION>
/klas/klish-scripts/interfaces.py conf -i ${iface} --enable 0
</ACTION>
</COMMAND>
<COMMAND name="no shutdown"
help="Enable the selected interface">
<CONFIG operation="unset" pattern="^shutdown"/>
<ACTION>
/klas/klish-scripts/interfaces.py conf -i ${iface} --enable 1
</ACTION>
</COMMAND>
最初の設定には 1 つの属性があるため、アクション タグ テキストは「0x7F01」に変更されます。2 番目の設定には「unset」と「shutdown」があるため、新しいアクション テキストである必要があり、これを新しい xml のままにします。
<COMMAND name="shutdown"
help="Shutdown the selected interface">
<CONFIG priority="0x7F01" />
<ACTION>
0x7F01
</ACTION>
</COMMAND>
<COMMAND name="no shutdown"
help="Enable the selected interface">
<CONFIG operation="unset" pattern="^shutdown"/>
<ACTION>
unset ^shutdown
</ACTION>
</COMMAND>
したがって、各属性を変数に設定し、それを action.text に渡す必要がありますか?
リストを作成する前にこれらの操作を行っていれば、もっと簡単だったでしょうか? 要素を操作してから追加することによって?タグ、テキストなどへの参照は既にあります。それとも、要素のリストでこれを行うことはできますか?