为子树过滤lxml.etree._Element

时间:2019-01-09 14:56:20

标签: python python-3.x lxml xml-namespaces

我很难使用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是否是此工作的正确方法,如果我错了,请在这里纠正我。

如何访问我感兴趣的变量?

0 个答案:

没有答案