mainCourse = tree.xpath('//div[@id="RM1127"]/div[@class="m01"]/text()')
我试图提取ID为RM1127的元素列表。这给了我一个清单。当ID RM1127中没有类m01时,如何插入空字符串?
我希望能够判断它是否会跳过某些内容。
答案 0 :(得分:0)
该列表仅包含与XPath表达式匹配的文本节点,它不包含有关XPath未选择的元素的信息。
您需要编写自己的逻辑,以便在'类别RM1127'中不存在类m01的情况下将空白字符串插入列表。一种可能的方法是修改XPath以选择div[@id="RM1127"]
,以便您可以循环遍历div
的完整集合,并根据需要将实际目标文本或空白文本插入到列表中,例如:< / p>
mainCourse = []
for div in tree.xpath('//div[@id="RM1127"]'):
#store current list size
size = len(mainCourse)
#insert target text nodes to the list
mainCourse.extend(div.xpath('./div[@class="m01"]/text()'))
#if size doesn't change, meaning no target text nodes was found...
if size == len(mainCourse):
#...insert blank text to the list
mainCourse.append('')
答案 1 :(得分:0)
不确定你想要什么,但它在XPath 1.0中会变得棘手,因为(a)你可以返回的唯一一种集合是一组节点,(b)那些节点必须是从输入文档中选择的节点:您无法创建任何新内容,例如空字符串。除非你可以转向比XPath 1.0更高级的东西(例如XQuery),否则我认为你必须选择比你想要的更多的信息,然后在Python级别过滤它。