【问题标题】:Error with lxml syntax to parse table elements while validating column contents验证列内容时使用 lxml 语法解析表元素时出错
【发布时间】:2012-05-18 19:09:33
【问题描述】:

我有以下代码来解析 html 表。如何检查 <td> 元素中的指定文本?这不起作用:val=doc.xpath('//tr/td[child::*[text()="Street :"]/span/text()')。仅当<td> 文本与“街道:”匹配时,我才尝试提取<span> 文本。非常感谢任何反馈!

import lxml.html as lh

html='''<tr>
<td>
Street : <span> High St. </span>
</td>
</tr>
<tr>
<td>
City : <span> Hightstown </span>
</td>
</tr>'''

doc=lh.fromstring(html)

#val=doc.xpath('//tr/td[child::*[text()="Street :"]/span/text()')
#street=doc.xpath('//tr/td/text()')
val=doc.xpath('//tr/td/span/text()')

#print street
print val

【问题讨论】:

    标签: python html lxml


    【解决方案1】:
    >>> doc.xpath('//tr/td[contains(text(),"Street :")]/span/text()')
    [' High St. ']
    

    【讨论】:

    • 太棒了!您能否指出列出了 xpath 中所有选项的其他来源? lxml.de 没有多大帮助。
    • 您可以在XPath specification 中找到它。不幸的是,我无法提供更好的来源。
    猜你喜欢
    • 2016-09-25
    • 2011-07-26
    • 2016-04-22
    • 1970-01-01
    • 2023-02-22
    • 2016-02-20
    • 2011-11-23
    • 2018-12-31
    • 1970-01-01
    相关资源
    最近更新 更多