在Python中使用变量进行Xpath查询

时间:2013-03-28 11:13:05

标签: python variables xpath expression

[N.B。我对Python& Xpath的]

我想要执行Xpath查询并使用表达式中的变量来使用索引遍历所有元素。

例如,我希望能够在此表达式中放置变量[1],而不是具有[2]i等的具体位置。

for x in root.xpath('/movies/a_movie[i]/studio'):
    print "<studio>" + x.text + "</studio>"

我不确定它是否可能,但我想这不会有问题!

为了澄清,这就是为什么我想这样做:我正在尝试处理a_movie[1]的所有元素,然后在函数的末尾,我想处理{{{{}的所有元素1}},等等。

1 个答案:

答案 0 :(得分:1)

您希望循环遍历/movies/a_movie代码,但只覆盖那些拥有 studio子代的代码:

for a_movie in root.xpath('/movies/a_movie[studio]'):
    name = a_movie.find('name').text
    studio = a_movie.find('studio')
    print "<studio>" + studio.text + "</studio>"

如果您只想将a_movie元素的子元素打印为XML,我只需遍历元素(循环遍历子元素)并在每个元素上使用ElementTree.tostring(): / p>

for a_movie in root.xpath('/movies/a_movie'):
    for elem in a_movie:
        print ElementTree.tostring(elem),