2017-07-07 88 views
-1

這裏,XML是xml='''<root>He<b>l<i>l</i>o</b>, <i>wo<b>r</b>ld!</i></root>'''我需要使用lxml從xml中提取文本

它應該打印「你好,世界!」

我正在使用Python lxml庫來獲取文本,但它不能正確打印預期的字符串。 如果您有更好的想法從XML中獲取文本,這將會有所幫助。

+1

您能否請您發佈已編寫的代碼以及預期和實際輸出的問題是什麼? – Colwin

+0

您可以嘗試BeautifulSoup,但正如@Colwin指出的,沒有足夠的信息提供建議。 –

回答

0

嘗試使用此:

from lxml import html 

xml_data = '''<root>He<b>l<i>l</i>o</b>, <i>wo<b>r</b>ld!</i></root>''' 
tree = html.fromstring(xml_data) 
print ''.join(tree.xpath('//text()')) 

注:雙斜線(//)是後代或自身軸線旋轉;它是/ descendant-or-self的簡稱:: node()/

+0

謝謝回答@ andres,但是我需要在不使用xpath的情況下提取文本。 –

+0

@sunnysingh你提到你使用lxml,這就是爲什麼我發佈這個答案 –

+0

是的,它的真實但我必須解決沒有內置函數的lxml。 –