Próbuję otworzyć katalog, który zawiera szereg XML w jednym określonym katalogu.
W poniższym kodzie, I iterating poprzez każdy dokument XML, a ja ustawienie niektórych "instrukcji if", aby odczytać tekst w XML, znaleźć słowa kluczowe i zastąpić je, a następnie napisz nowy plik do nowej lokalizacji.
otrzymuję następujący błąd podczas uruchamiania skryptu:Argument typu "NoneType" nie jest iterable
Traceback info:
File "Z:\ESRI\Python\Test Scripts\ElementTree6.py", line 62, in <module>
if "%begdate%" in element.text:
...
Error Info:
argument of type 'NoneType' is not iterable
mam zakodowanego katalogu do jednego konkretnego XML i kiedy uruchomić poprzez if, działają dobrze.
To jest, gdy próbuję skonfigurować do iteracji poprzez serię XML-ów, które napotkam na błąd.
Przeszukałem tę stronę, aby sprawdzić, czy mogę rozwiązać rozwiązanie, ale wszystkie problemy są inne niż moje lub nie rozumiem w pełni tego, co się dzieje.
Użyłem wielu linii drukowania do testowania wyjść.
Wszystko działa poprawnie, dopóki nie dojdę do instrukcji if, a następnie pojawi się błąd.
# 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
Nie skompiluje się tak, jak napisano - myślę, że masz na myśli, że linia jest 4 spacje w lewo, wyrównane z komentarzem "print element.text". Co widziałeś, kiedy miałeś to niewyjaśnione, BTW? –