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

标签 python variables xpath expression

[注意我对 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] 的所有元素,依此类推。

最佳答案

你想循环遍历 /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),

关于python - 在 Python 中使用变量进行 Xpath 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15680308/

相关文章:

python - 在大矩阵中找到满足特定条件的元素的所有索引给出 MemoryError

变量声明时的Java内存使用情况?

linux - 带有 $ 的 BASH 脚本未正确保存

javascript - 如何使用数组值作为函数参数的变量名以在 JavaScript 中从数组创建表?

xml - 命名空间和特定的 xpath

javascript - 如何知道网页内容是否无法被Scrapy处理?

r - R中xpathSApply的正确语法

c++ - 如何在 C++ 中高效地构建 Python 字典

python - 断言在 Python 单元测试中调用了一个方法

python - 自动更新变量