2016-10-24 11 views
1

Ich möchte 111111111 verwenden xpath von der text, ich mache es auf diese Weise unten, aber ich kann es nicht bekommen.Wie bekomme ich den Text xpath aus dem 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) 

Der Ausgang ist [] .Ich denke ich 111111111 bekommen kann. Aber warum? Was ist daran falsch?

Antwort

0

Sie die Klammern vergessen.

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

wird funktionieren.

+0

genau, U sind richtig! – BinWone

+0

Wie unterscheidet sich diese Antwort von meiner? – uL1

0

Verwenden xpath node testtext():

Es wählt alle Kinder vom Typ text-Knoten des Kontext-Knoten p.

Fügen Sie den Filter /text()[normalize-space()] an, um führende und nachfolgende Leerzeichen, wie neue Zeilen und Leerzeichen, zu entfernen.

Complete:

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

Sie XPath wie folgt verwendet werden:

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