我找不到合适的语法或方法来做到这一点,这就是我伸出援手的原因。
我正在使用python 2.7 lxml etree
我的代码与此类似:
for y in mytree.iterfind('./level1/level2/level3/[2]'):
print y.tag, y.text
基本上在关卡的第二次迭代中打印所有可用的标签和文本。 (我知道有多少,我没有索引或使函数工作的问题。)
我正在尝试使用' i'作为一个定义的变量(逐步增加' i'到定义的项目数量)。
这不起作用:
for y in mytree.iterfind('./level1/level2/level3/[i]'):
print y.tag, y.text
我还尝试将字符串创建为变量(将文本与' i变量连接为字符串,但是python不再认识到它是一个函数。
任何建议或帮助都将不胜感激。
答案 0 :(得分:1)
您需要使用i的值构建路径字符串,例如(未测试):
for y in mytree.iterfind('./level1/level2/level3/[%d]'%(i)):
print y.tag, y.text
如果有疑问,请在interfind调用之外构造字符串,以便打印它,例如(另):
for i in range(3): # or whatever the i loop is...
pathstr = './level1/level2/level3/[%d]'%(i)
print pathstr
for y in mytree.iterfind(pathstr):
print y.tag, y.text