2016-10-24 3 views
1

Я хочу получить 111111111xpath от text, я делаю это так ниже, но я не могу его получить.Как я могу использовать текст xpath для текста?

import lxml 
text = """<p class="tel"> 
<span class="dsTitle">tel:</span> 
111111111 
</p> 
""" 
doc = lxml.etree.fromstring(text, parser=lxml.etree.HTMLParser()) 
tel = doc.xpath('//p/text') 
print(tel) 

Выход [] .Я думаю, что я могу получить 111111111. Но почему? Что случилось с этим?

ответ

0

вы забыли скобки.

doc.xpath('//p/text()') 

будет работать.

+0

точно, U правы! – BinWone

+0

Как этот ответ отличается от моего? – uL1

0

Использование xpath node testtext():

Он выбирает все ребенок типа текстового узла вашего контекстного узла p.

Добавить фильтр /text()[normalize-space()], чтобы удалить ведущие и конечные узлы белого пространства, такие как новые линии и пробелы.

Complete:

tel = doc.xpath('//p/text()[normalize-space()]') 
0

вы можете использоваться XPath следующим образом:

//span[contains(text(),'tel:')]/following-sibling::text()[1] 
Смежные вопросы