【发布时间】:2012-05-02 17:43:46
【问题描述】:
我希望提取的文本的 xpath 可靠地位于树的深处
...table/tbody/tr[4]/td[2]
具体来说,td[2] 的结构是这样的
<td class="val">xyz</td>
我正在尝试提取文本“xyz”,但广泛搜索会返回多个结果。例如以下路径返回 10 个元素。
xpath('//td[@class="val"]')
... 而特定搜索不返回任何元素。 我不确定为什么以下内容没有返回任何内容。
xpath('//tbody/tr/td[@class="val"]')
一个解决方案涉及..
table = root.xpath('//table[@class="123"]')
#going down the tree
xyz = table[0][3][1]
print vol.text
但是,我很确定这非常脆弱。如果有人能告诉我如何构建一个既不脆弱且资源相对便宜的 xpath 搜索,我将不胜感激
【问题讨论】:
-
你可以粘贴一些有效的 xml 来测试,而不是给出 `...table/tbody/...'
-
请提供一个示例 XML 文档。如果超过 10 行,您可以将其上传到 pastebin.com 或 gist
-
或者您可以修剪 xml 文档,在 python 代码中使用它并粘贴显示问题的示例 python 代码,我想复制粘贴并运行您的代码并查看问题,例如类似于我的回答