2016-10-24 107 views
1

我想得到111111111使用xpathtext,我這樣做下面,但我不明白。如何從文本中獲取文本使用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

確切地說,你是對的! – BinWone

+0

這個答案與我的不同之處在哪裏? – uL1

0

使用xpath node testtext()

它選擇您的上下文節點p的類型的文本節點的所有兒童。

附加過濾器/text()[normalize-space()]刪除前導和尾隨空白節點,如新行和空格。

完成:

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

,你可以使用的XPath如下:

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