如何使用 LXML 递归查找 XML 标记?

How to find recursively for a tag of XML using LXML?(如何使用 LXML 递归查找 XML 标记?)

本文介绍了如何使用 LXML 递归查找 XML 标记?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

<?xml version="1.0" ?>
<data>
    <test >
        <f1 />
    </test >
    <test2 >
        <test3>
         <f1 />
        </test3>
    </test2>
    <f1 />
</data>

使用 lxml 是否可以递归地找到标签"f1 "?我尝试了 findall 方法,但它只适用于直系子女.

Using lxml is it possible to find recursively for tag " f1 "? I tried findall method but it works only for immediate children.

我想我应该为此选择 BeautifulSoup !!!

I think I should go for BeautifulSoup for this !!!

推荐答案

可以使用XPath递归搜索:

You can use XPath to search recursively:

>>> from lxml import etree
>>> q = etree.fromstring('<xml><hello>a</hello><x><hello>b</hello></x></xml>')
>>> q.findall('hello')     # Tag name, first level only.
[<Element hello at 414a7c8>]
>>> q.findall('.//hello')  # XPath, recursive.
[<Element hello at 414a7c8>, <Element hello at 414a818>]

这篇关于如何使用 LXML 递归查找 XML 标记?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:如何使用 LXML 递归查找 XML 标记?

基础教程推荐