我有一个包含一些内容的xml树,我想要计算有多少树元素具有特定关键字。这是xml结构
<tree>
<tw>
<con>Bla bla bla</con>
</tw>
<tw>
<con>Bla bla bla bla bla</con>
</tw>
...
</tree>
这就是我写的功能。我正在使用python 2.7。
def conta_una(tree, kw1):
conta=[]
for i, tw in enumerate(tree.findall('tw')):
for con in tw.findall('con'):
if con.text and kw1 in con.text:
conta.append(tw.getchildren())
print(len(conta))
然后我在python中导入函数,我定义了两个变量并调用函数
from xml.etree.ElementTree import ElementTree
tr1 = ElementTree().parse('/path/file.xml')
keyword = "word"
conta_una(tr1, keyword)
无论我在变量keyword
中放入什么关键字,我总是得到1作为结果。但是如果我像这样明确地编写函数
tree = ElementTree().parse('/path/file.xml')
conta=[]
for i, tw in enumerate(tree.findall('tw')):
for con in tw.findall('con'):
if con.text and "word" in con.text:
conta.append(tw.getchildren())
print(len(conta))
我得到了正确的结果。我确定我在函数定义中犯了一个非常愚蠢的错误,但即使查看手册我也无法理解。