2016-10-24 1 views
1

나는 text에서 111111111 사용 xpath을 얻고 싶습니다. 아래에서이 방법을 사용합니다. 그러나 얻을 수는 없습니다.텍스트에서 텍스트의 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) 

출력은 .I []입니다 내가 111111111을 얻을 수 있다고 생각합니다. 하지만 왜? 이게 뭐가 잘못 됐어?

답변

0

당신은 브래킷을 잊어 버려.

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

.

+0

정확히 U가 맞습니다! – 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] 
관련 문제