我要在元素树上找到一个文本,但是有两种情况我无法获取文本,它显示"无">
第一种情况:第一个标签有链接
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')
我想知道我如何在这两种情况下获得流浪汉的短信
谢谢
使用 .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)
(中则不起作用。