【发布时间】:2017-11-15 10:29:40
【问题描述】:
我有一个示例 XML,如下所示:
<data xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<sessions xmlns="com:infinera:common:session">
<session>
<MoId>admin_12</MoId>
<AccountName>admin</AccountName>
<ProtocolType>SSH</ProtocolType>
<MgmtAppType>CLI</MgmtAppType>
<AuthenticationType>LOCAL</AuthenticationType>
</session>
<session>
<MoId>admin_13</MoId>
<AccountName>admin</AccountName>
<ProtocolType>TELNET</ProtocolType>
<MgmtAppType>TL1</MgmtAppType>
<AuthenticationType>LOCAL</AuthenticationType>
<session>
</sessions>
</data>
在这里,我想遍历子项以查找 MgmtAppType 的值是否为 TL1,如果是,我想打印与之关联的所有元素,即 MoID、AccountName 、协议类型、管理应用类型、身份验证类型。 我尝试使用以下代码,但这仅打印 MgmtAppType
的值import xml.etree.ElementTree as ET
root = ET.parse('C:\\session.xml')
roots = root.getroot()
for sess in roots.iter():
if (sess.tag == "{com:infinera:common:session}MgmtAppType") and (sess.text == "TL1"):
for chd in sess.iter():
print chd.text
如何根据搜索打印特定子节点的所有元素?
【问题讨论】:
标签: python xml xml-parsing elementtree