新手 - 我正在尝试使用lxml在任何元素中找到“错误”(下面的示例XML文件,但无论嵌套标签如何,它都应该有效):
<test>
<test1>
error
</test1>
<test2>
<test3>
error
</test3>
</test2>
</test>
到目前为止,似乎lxml只能搜索标签而不是标签内的数据 - 这是正确的吗?
答案 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
相比略高或略快。