如何从文本中获取文本使用xpath?

时间:2016-10-24 05:44:21

标签: python xpath lxml

我希望从111111111获取xpath text,我会在下面这样做,但我无法理解。

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。 但为什么?这有什么问题?

3 个答案:

答案 0 :(得分:0)

使用xpath node test text()

它选择context-node p的text-node类型的所有子节点。

附加过滤器/text()[normalize-space()]以删除前导和尾随空白节点,如新行和空格。

<强>完整

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

答案 1 :(得分:0)

你可以使用xpath如下:

//span[contains(text(),'tel:')]/following-sibling::text()[1]

答案 2 :(得分:0)

你忘了括号。

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

会奏效。