[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}},等等。
答案 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),