我很难使用lxml.etree._Element
类的实例方法(为概述起见,这些方法已记录在here中)。基本上,我有一个上述格式的xml框架,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<rpc-reply xmlns="xxx" xmlns:nc="xxx" message-id="xxx">
<data>
<module xmlns="xxx">
<module>
<ports>
<port_name>2<Requests>0</Requests><Indications>0</Indications></port_name>
<port_name>3<Requests>0</Requests><Indications>0</Indications></port_name>
<port_name>4<Requests>0</Requests><Indications>0</Indications></port_name>
</ports>
</module>
</module>
</data>
</rpc-reply>
我在这里想要做的是过滤名称为module
的模块,并访问每个端口的请求和指示数。
我试图这样做(变量frame
保存xml框架):
for i in frame.iterfind('module/ports'):
print(i.text)
此操作没有任何输出,因此语法似乎还不错。但是我希望在ports
下获得3个条目。但是,我什么也没得到。我不确定iterfind
是否是此工作的正确方法,如果我错了,请在这里纠正我。
如何访问我感兴趣的变量?