2

[注意我对 Python 和 Xpath 很陌生]

我想执行一个 Xpath 查询并在表达式中使用一个变量来循环使用索引的所有元素。

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

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

我不确定这是否可能,但我想问一下也无妨!

澄清一下,这就是我想这样做的原因:我正在尝试处理 的所有元素a_movie[1],然后在函数结束时,我想处理 的所有元素a_movie[2],依此类推。

4

1 回答 1

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()在每个元素上使用:

for a_movie in root.xpath('/movies/a_movie'):
    for elem in a_movie:
        print ElementTree.tostring(elem),
于 2013-03-28T11:22:26.067 回答