Xpath表达式,格式方法,使用for循环外的变量,Python

时间:2016-08-27 15:52:37

标签: python string xpath

我使用xpath和lxml来解析XML文件。我使用format来增加item元素item [{}]中的值,这样我就可以从第一个元素2nd获取数据,依此类推。我根据// items / item元素出现在XML文件中的次数进行循环,这是有效的。当我到达元组中的最后一项时,我将z增加1.

问题: 我无法想象如何在这个for循环之外分配元组值,并且仍然使用format来增加z的值。如果我在for循环外定义元组,则z总是等于1.它如图所示,但我不喜欢它。

x = 0
y = 1 
z = 1
for field in xrange(1, 3):
        dataFields = \
            (("itemType" , "//items/item[{}]//@itemType".format(z)),
            ("itemClass" , "//items/item[{}]//@itemClass".format(z)),)
    currentData = dataFields[x][y]
    try:
        r = tree.xpath(currentData)[0]
    except:
        r = ""
    f = open(dataOutputFile, 'a')
    f.write(str(r) + "\t")
    f.close()
    x += 1
    if "itemClass" in currentData:
        z += 1

0 个答案:

没有答案