私はxmlファイルを解析しています:http://pastebin.com/fw151jQN 私はそれをたくさんコピーして新しいファイルに書きたいと思っています。それは無視しました。最初のパスとして、特定の xml を見つけて、変更せずに新しいファイルに書き込みたいと考えています。
最初に関心のある xml のセクションは次のとおりです。
<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>
私のコードは以下です
#!/usr/bin/python -tt
import xml.etree.ElementTree as ET
tree = ET.parse('interface_range_test.xml')
root = tree.getroot()
namespaces = {'command': 'http://clish.sourceforge.net/XMLSchema}COMMAND','config': 'http://clish.sourceforge.net/XMLSchema}CONFIG'}
all_links = tree.findall('.//')
for i in all_links:
if namespaces['command'] in i.tag:
if i.attrib['name'] == "shutdown":
print i.attrib
if namespaces['config'] in i.tag:
print i.attrib
出力:
{'name': 'shutdown', 'help': 'Shutdown the selected interface'}
{'priority': '0x7F01'}
{'pattern': 'shutdown', 'operation': 'unset'}
CONFIG
これはファイルを読み込み、シャットダウン情報を見つけることができます。今、情報を見つけたいのですが、action
情報とそれはテキストですが、検索するととCONFIG
の両方の情報がshutdown
ありno shutdown
ます。このケースは多くの xml で発生し、その多くは同じ形式です。
シャットダウン: {'priority': '0x7F01'} no shutdown: {'pattern': 'shutdown', 'operation': 'unset'}
どちらを参照するかを指定するにはどうすればよいですか?この情報の親を確認できますか? または、その上のスーパー要素の子を確認できますか ( http://clish.sourceforge.net/XMLSchema}COMMAND
)?