【问题标题】:How to get attribute value of next child in XML tree using ElementTree如何使用 ElementTree 获取 XML 树中下一个子节点的属性值
【发布时间】:2014-02-07 07:38:24
【问题描述】:

我正在使用 ElementTree 解析一个 XML 文件。但我不知道如何在解析时访问下一个元素。我想要做的是将特定标签打印到文件中,如果与下一个孩子对应的相同标签相同。例如。如果第 5 个元素的 code 标签是 12345,第 6 个元素的标签也是 12345,那么我想将代码打印到文件中。

类似:

for child in root:
    if child.find('code').text == next(child).find('code').text:
        file.write(child.find('code').text + "\n")

【问题讨论】:

    标签: python xml-parsing elementtree


    【解决方案1】:

    这已经过测试并且应该可以工作:

    it = root.iter('code')
    prev = it.next()
    for current in it:
        if prev.text == current.text:
             print prev.text
        prev = current
    

    你也可以使用zip:

    for current, next in zip(codes, codes[1:]):
        print map(lambda node: node.find('code').text, [current, next])
    

    【讨论】:

    • 我只会得到第二个孩子的“代码”,而错过第一个。例如。如果第 3 和第 4 个孩子的“代码”相同,则只会打印第 4 个孩子的代码
    • 使用 zip 添加另一种方式
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-13
    • 2012-08-05
    • 1970-01-01
    • 2021-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多