我盡我所能搜索答案,但沒有辦法弄到符合我需要的東西。我正嘗試將XML文件重新格式化爲自定義格式並遇到問題。這是我的要求。python file.next()正在搞亂for循環
我有下面的XML文件:
<parameters>
<parameter name="name1" value="value1"/>
<parameter name="name2" value="value2"/>
<parameter name="name3" value="value3"/>
<parameter name="name4" value="value4"/>
</parameters>
我期待將其轉換成以下。
(param().name("name1").value("value1"),
param().name("name2").value("value2"),
param().name("name3").value("value3"),
param().name("name4").value("value4"));
我試過使用下面的代碼,它似乎是跳過一些數據從原始文件到輸出。
with open("myfile","r") as f:
for each_line in f:
current_line = each_line
if current_line.strip().startswith('<'):
split_line = current_line.strip().split(' ')
if split_line[0].lstrip('<') == "parameter":
if f.next().strip() == "</parameters":
print 'param().name(' + split_line[1].split('=')[1] + ').value('+ split_line[2].split('=')[1][:-2] + '));\n\n'
else:
print 'param().name(' + split_line[1].split('=')[1] + ').value('+ split_line[2].split('=')[1][:-2] + ')'
我看到使用f.next()導致的問題...不知道我怎麼能解決這個問題。
嗯...我認真應該考慮一下XML解析器:) 馬克,我想用逗號結束行,如果它只有最後一行的任何行和分號。 – Balaji
@BalajiCuttackam:哦,添加逗號需要完整的重寫。也許是時候徹底拋棄這些代碼並改用XML解析器。 –
我現在正在嘗試...感謝您的建議! – Balaji