2014-01-17 70 views
1

我使用ElementTree解析XML文件。但我不知道如何在解析時訪問下一個元素。如果與下一個孩子對應的相同標籤相同,我想要做的是將特定標籤打印到文件中。例如。如果第五個元素的code標記爲12345,而第六個元素的標記也是12345,那麼我想要在代碼中打印一個文件。如何使用ElementTree獲取XML樹中下一個子元素的屬性值

喜歡的東西:

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

回答

0

本進行了測試,應該工作:

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]) 
+0

我將只得到的 '代碼'第二個孩子,錯過了第一個。例如。如果第3和第4個孩子有相同的「代碼」,那麼只有第4個孩子的代碼將被打印 – nish

+0

使用zip加上另一種方式 –

相關問題