Problem mit Programm XML Parser
Verfasst: Freitag 25. Juli 2008, 08:37
Bin am verzweifeln. Ich hab meinen XML Parser ausgebaut. Leider passiert gar nichts. Ich starte und der beendet sich direkt wieder ohne Fehler.
Weiß nicht wo der Fehler sein könnte.
Code: Alles auswählen
import string
import codecs
import sys
from xml.etree import ElementTree as et
def parser(flag):
if flag == "u":
text = message.find("VUser").text
elif flag == "a":
text = message.find("Agent").text
elif flag == "m":
text = message.find("Text").text
#elif flag == "p":
#text = message.find("").text
elif flag == "t":
text = message.find("Transaction").text
elif flag == "s":
text = message.find("Script").text
else:
print "Parameter nicht vorhanden"
sys.exit()
yield text
def main():
try:
argument1 = sys.argv[1]
except IndexError:
argument1="hilfe"
try:
argument2 = sys.argv[2]
except IndexError:
argument2 = "leer"
try:
argument3 = sys.argv[3]
except IndexError:
argument3 = "leer"
if "line" not in argument1:
argument1="hilfe"
argument1 = argument1.lower()
if "hilfe" in argument1:
print "Das ist die Hilfe"
print "Bitte Porgramm mit den entsprechenden Parameter Aufrufen"
print "Mit dem Parameter 'line:' und danach mit den Argumenten pro Zeile"
print "Datum und Zeit werden immer mit angeben"
print "u User"
print "a Agent"
print "m Message"
print "p Profile"
print "t Transporter"
print "s Sicher"
print "Beispiel XMLparserdeluxe.py line:a"
sys.exit()
files = file("detailedReport.xml", "r")
etree = et.parse(files)
files.close()
out_file = codecs.open("detailedReport.csv", "w", "utf-8")
root_tag = etree.getroot()
for messagelist in root_tag.findall("MessageList"):
for message in messagelist.findall("Message"):
time = message.find("Time").text
time = time.replace(" ",";")
if argument3 is not "leer":
argument3 = argument3.lower()
argument3 = argument3.strip("line:")
text = parser(argument3)
text = text.strip()
out_file.write("%s;%s;1" % (time, text) + "\r\n")
if argument2 is not "leer":
argument2 = argument2.lower()
argument2 = argument2.strip("line:")
text = parser(argument2)
text = text.strip()
out_file.write("%s;%s;1" % (time, text) + "\r\n")
argument1 = argument1.lower()
argument1 = argument1.strip("line:")
text = parser(argument1)
text = text.strip()
out_file.write("%s;%s;1" % (time, text) + "\r\n")
out_file.close()