我想打開一個目錄,其中包含一系列XML在一個特定的目錄中。
在下面的代碼中,我遍歷每個XML文檔,並設置一些「if語句」來讀取XML中的文本,查找關鍵字並替換它們,然後將新文件寫入新位置。
我收到以下錯誤,當我運行該腳本:類型'NoneType'的參數是不可迭代的
Traceback info:
File "Z:\ESRI\Python\Test Scripts\ElementTree6.py", line 62, in <module>
if "%begdate%" in element.text:
...
錯誤信息:
argument of type 'NoneType' is not iterable
我已經硬編碼的目錄到一個特定的XML,當我通過if語句運行,他們工作正常。
這是當我嘗試設置迭代通過一系列我遇到錯誤的XML。
我通過本網站搜索,看看我是否可以最終解決方案,但所有的問題要麼是從我的不同,要麼我不是很理解解決方法。
我已經使用了多個打印行來測試輸出。
一切正常,直到我得到if語句,然後出現錯誤。
# Location of XML's
folderPath = r"Z:\data"
# set variable to store files with extension ".xml"
for filename in glob.glob(os.path.join(folderPath, "*.xml")):
fullpath = os.path.join(folderPath, filename)
# find files and split the filename from the directory path
if os.path.isfile(fullpath):
basename, filename2 = os.path.split(fullpath)
#print "Basename = " + basename
#print "Filename = " + filename2
# set variable to store XML structure from xml file
root = ElementTree(file=r"Z:\data\\" + filename2)
#Create an iterator
iter = root.getiterator()
#Iterate
for element in iter:
#print element.text
if "%begdate%" in element.text:
BEGDATE = element.text.replace("%begdate%", BEGDATEPARAM)
element.text = BEGDATE
這不會像編寫的那樣編譯 - 我認爲你的意思是這條線是左邊4個空格,與註釋掉的print element.text對齊。順便提一下,你有什麼看到這個未註釋的,BTW? –