Форум сайта python.su
Вопрос знатокам XPath
Есть строка вида
['8.07/8.12']
>>> page.xpath("./*//div[@class='currency_div']/div[@class='val'][1]/ul/li[3]/text()[1][substring-before(.,'/')]")
Отредактировано dorian (Июнь 6, 2012 10:33:07)
Офлайн
То, что находится в скобках
[]
In [1]: import lxml.html In [2]: content = '''<div class="val">8.07/8.12</div>''' In [3]: doc = lxml.html.fromstring(content) In [4]: doc.xpath('substring-before(//div[@class="val"],"/")') Out[4]: '8.07' In [5]: doc.xpath('//div[@class="val"]')[0].xpath('substring-before(.,"/")') Out[5]: '8.07'
Офлайн
reclosedevспасибо, работает
То, что находится в скобкахэто дополнительное условие выборки.[]
Чтобы получить сам текст, нужно вызывать примерно так:In [1]: import lxml.html In [2]: content = '''<div class="val">8.07/8.12</div>''' In [3]: doc = lxml.html.fromstring(content) In [4]: doc.xpath('substring-before(//div[@class="val"],"/")') Out[4]: '8.07' In [5]: doc.xpath('//div[@class="val"]')[0].xpath('substring-before(.,"/")') Out[5]: '8.07'
Офлайн