Python在所有XML元素中搜索数据

时间:2013-04-04 05:46:00

标签: python lxml

新手 - 我正在尝试使用lxml在任何元素中找到“错误”(下面的示例XML文件,但无论嵌套标签如何,它都应该有效):

<test>
  <test1>
    error
  </test1>
  <test2>  
    <test3>
      error
    </test3>
  </test2>
</test>

到目前为止,似乎lxml只能搜索标签而不是标签内的数据 - 这是正确的吗?

1 个答案:

答案 0 :(得分:0)

您是否在询问是否有内置函数来搜索元素中的文本?使用lxml的{​​{1}}解析器编写自己的搜索例程非常简单。例如:

<强>的test.xml

etree

从命令行:

<test>
  <test1>
    error
  </test1>
  <test2>  
    <test3>
      error
    </test3>
  </test2>
</test>

编辑:如果您最终走这条路线并且不需要使用XML命名空间,我建议您查看>>> import lxml.etree as etree >>> for event, element in etree.iterparse("test.xml"): ... # Print the tag of a matching element ... if element.text.strip() == "error": ... print element.tag ... test1 test3 而不是xml.etree.cElementTree。它包含在Python标准模块中,与lxml.etree相比略高或略快。