2009-10-16 3 views

답변

8

HTML에는 자체 마감 태그가 없습니다. 그것은 XML입니다.

import lxml.etree 

html = '<div><br />Hello text</div>' 
doc = lxml.etree.fromstring(html) 
text = doc.xpath('//text()')[0] 
print lxml.etree.tostring(text.getparent()) 

인쇄

텍스트가 태그 내에 아니라고
<br/>Hello text 

참고. lxml에는 "tail"개념이 있습니다.

>>> print text.text 
None 
>>> print text.tail 
Hello text 
2

유효한 XHTML을 처리 할 때 html 대신 etree를 사용할 수 있습니다.

import lxml.etree 

html = '<div><br />Hello text</div>' 
doc = lxml.etree.fromstring(html) 
text = doc.xpath('//text()')[0] 
print lxml.etree.tostring(text.getparent()) 

재미있는 것은, 일반적으로 XHTML을 HTML로 변환하려면이 옵션을 사용할 수 있습니다

import lxml.etree 
import lxml.html 

html = '<div><br>Hello text</div>' 
doc = lxml.html.fromstring(html) 
text = doc.xpath('//text()')[0] 
print lxml.etree.tostring(text.getparent()) 

출력 : "<br/>Hello text"