我可以使用xpath(在lxml中)查找一开始就不知道的标签名称吗?

时间:2016-04-25 21:13:33

标签: python xpath lxml

我正在尝试处理一些xml文件。不幸的是,我无法完全访问构成所有可能树的所有不同元素

所以例如我可能有一个结构化的文档

<typeOfBook>
    <isMystery>True</isMystery>
</typeofBook>

很简单,但是当我查看初始创建这些文件时使用的清单时,我会看到“书籍类型”部分下的类别,例如“参考灵性”。根据我对Mystery的经验,我尝试编写一个xpath表达式

我基于此

构建了我的xpath
'//typeofbook/isreferencespirituality/text()'

然后我发现他们使用的实际标签是isrefspirit,因此正确的xpath是

'//typeofbook/isrefspirit/text()'

考虑到我要学习的文件数量和可能的类别数量,有一个 xpath钓鱼工具 - 我想在我的所有文件中运行一次以查找类型后的所有标签因此我可以正确地对返回的文本进行分类

基本上我想做像

这样的事情

对我的所有文档运行一些查询以查找以下行中的*

'//typeofbook/*/' 

1 个答案:

答案 0 :(得分:1)

*用作通配符,因此只需//typeofbook/*'即可获取typeofbook标记内的所有子元素。

对于未知节点,您可能会发现其他一些有用的东西:

@* # any attribute 
node() # any node at all