0
Python /編程初學者。正在從XML解析/提取數據。寫入XML - 缺失行
目標:將格式不正確的xml文件(一個.data文件中的多個xml文件)寫入單獨的xml文件。 FYI--每個xml以文件中的相同聲明開始,總共有4個。
方法(1)我在文件(2)上使用readlines()查找每個xml聲明的索引( 3)通過xml列表切片循環,將每行寫入文件。下面的代碼,道歉,如果它吮吸:)
For i, x in enumerate(decl_indxs):
xml_file = open(file, 'w')
if i == 4:
for line in file_lines[x:]:
xml_file.write(line)
else:
for line in file_lines[x:decl_indxs[i+1]]:
xml_file.write(line)
問題前3個XML是沒有問題產生。第4個xml僅寫入396行的前238行。
疑難解答我修改了代碼以打印出用於最後一個循環的列表片,這很好。我也通過第四個列表切片並正確輸出。
幫助任何人都可以解釋爲什麼會發生這種情況嗎?在改進我的方法方面得到建議也是很好的。越多的信息越好。謝謝
謝謝@Nikolay我雙重檢查我的指標是正確的,當我打印出來的切片它包括了所有的數據。但是,無論如何,我對改進策略最感興趣。我查看了你提到的XML解析器,但無法弄清楚如何從單個文件創建多個樹。我只能爲第一個根獲得一棵樹。在調查過程中,我遇到了堆棧上的建議,以便簡化並逐行寫入。 –
是否將xml行連接到字符串(results_strings)中以提高寫入時的性能?跳過它並使用save_xmls函數中的一個嵌套for results_lists效率較低? –
是的,解析器都是關於單個XML的。你的任務是使用字符串進行純粹的工作。即在你的任務完成後,你要處理結果,你需要一個95%的解析器。 –