我要在元素树上查找文字,但有两种情况我无法获取文字,并显示“无”'
第一种情况:第一个标签有一个链接
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')
我想知道如何在这两种情况下获得乞丐文本
由于
答案 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)
,它不会。