为了账号安全,请及时绑定邮箱和手机立即绑定

LXML:是否可以在元素内搜索?

LXML:是否可以在元素内搜索?

函数式编程 2023-06-27 10:43:53
我习惯了 Beautifulsoup,我会提取元素,然后在其中进行搜索。但 LXML 并没有看到这样的行为,看起来它是从主文档中搜索的。从以下示例中,我得到的输出是:情况1标准:1标准:2标准:3标准:4案例:2标准:1标准:2标准:3标准:4但我期望的是:情况1标准:1标准:2案例:2标准:3标准:4示例代码:from lxml.html import fromstring, tostringhtml = """<p>Test document</p><case id='1'>  <criteria id='1'><p>Some text</p></criteria>  <criteria id='2'><p>Some more text</p></criteria></case><case id='2'>  <criteria id='3'><p>It just keeps going</p></criteria>  <criteria id='4'><p>Will it never end?</p></criteria></case>"""doc = fromstring(html)case_list = doc.xpath('//case')for case in case_list:    print('Case: ', case.get('id'))    criteria_list = case.xpath('//criteria')    for criteria in criteria_list:        print(' - Criteria: ', criteria.get('id'))
查看完整描述

1 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

问题可能出在这一行:

criteria_list = case.xpath('//criteria')

尝试将 XPath 表达式从 '//criteria' (从根搜索文档)替换为 './criteria' (从当前元素搜索):

criteria_list = case.xpath('./criteria')


查看完整回答
反对 回复 2023-06-27
  • 1 回答
  • 0 关注
  • 87 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信