python - 使用 xpath 循环特定 div 内的所有 <h2> 标签

标签 python xpath

我试图循环每个 <h2> div 内带有 id="somediv" 的标签(获取其文本)使用此代码:

for k,div1 in enumerate(tree.xpath('//div[@id="someid"]')):
  print div1.xpath('.//h2['+str(k+1)+']/text()')

但它不起作用。为什么?然而这有效:

for i in range(5): #let's say there are 5 div's with id="someid" to make things easier
  print tree.xpath('//div[@id="someid"]/div/div[1]/div[2]/h2['+str(i)+']/text()'))

这里的问题是,我必须给出绝对路径 .../div/div[1]/div[2]...这是我不想要的。我的第一个解决方案看起来不错,但没有产生所需的结果,相反我只能检索所有 <h2>标签来自 div="someid"一次。谁能告诉我我做错了什么?

最佳答案

.// 将继续沿树向下搜索。从属于您的 div 的 h2 文本节点列表就是

tree.xpath('//div[@id="someid"]/.//h2/text()'))

关于python - 使用 xpath 循环特定 div 内的所有 <h2> 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39982929/

相关文章:

python while循环意外行为

python - 如何从 Pandas 数据框中删除没有数据的列

java - 识别 <xsl :value-of> context item/node 的值

python - 如果后续值非零,则将 pandas 零值替换为 ffill 非零值

Python pylint(raise-format-tuple) 异常参数表明字符串格式可能是有意的

python - 天空场寻找外行星

c# - 用于获取子元素计数的 XPath 表达式

java - xerces Xpath - 从另一个节点搜索节点

java - webdriver 单击网页中的链接

java - 对格式不正确的 XML 进行 XPath 评估?