lxml

时间:2017-05-21 11:31:08

标签: python python-3.x lxml

我要在元素树上查找文字,但有两种情况我无法获取文字,并显示“无”'

第一种情况:第一个标签有一个链接

from lxml import etree 

node = etree.fromstring("<a xml = 'www.www.com'><c>bum</c></a>")

print node.findtext('c',default = 'what happened?')

第二种情况:文字广告代码的父标记没有内容

from lxml import etree 

node = etree.fromstring('<a><b><c>bum</c></b></a>')

print node.findtext('c', default = 'what happened?')

成功代码:没有内容的链接和标记

from lxml import etree 

node = etree.fromstring('<a><c>bum</c></a>')

print node.findtext('c')

我想知道如何在这两种情况下获得乞丐文本

由于

1 个答案:

答案 0 :(得分:0)

使用.iter查找正确的标记,然后.text

node1 = etree.fromstring("<a xml = 'www.www.com'><c>bum</c></a>")
node2 = etree.fromstring('<a><b><c>bum</c></b></a>')

for c_node in node1.iter(tag='c'):
    print(c_node.text)
    # bum

for c_node in node2.iter(tag='c'):
    print(c_node.text)
    # bum

请注意,在第一种情况下print(node1.find('c').text)也适用,但在第二种情况下print(node2.find('c').text),它不会。