[Python-de] xml.parsers
Olaf Radicke
olaf_rad at gmx.de
Mit Okt 15 09:27:45 CEST 2003
Hi!
Ich frage mich warum mein Skript ein
so merkwürdiges Verhalten an den Tag legt.
Der XML-Parser will angeblich jedes Tag zweimal
gefunden haben (das zweite mal immer leer)
Ich kann mir das nicht erklären.
...Also es muss irgend wie mit den Umbrüchen
zu tun haben. Ich habe das XML mal direkt in das
Skript geschrieben und die Probleme bleiben
die gleichen. Wenn man die Zeilenumbrüche
aus dem XML entfernt, verschwinden zum Teil
die "Doppel-Auslesungen".
Hier ein Prototyp:
from xml.parsers import expat
class Conf:
def __init__(self):
# Die Funktionen für den Parser
def start(tag, attrs):
self.last_tag = tag
def data(data):
if self.last_tag == "host":
self.host = data
print "host gefunden: "
print self.host
elif self.last_tag == "port":
print "port gefunden: "
self.port = data
# Parser an die Funktionen binden
parser = expat.ParserCreate()
parser.StartElementHandler = start
parser.CharacterDataHandler = data
xml_code = """<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>
<configuration>
<host>host-test</host>
<port>port-test</port><max_clients>test</max_clients>
<max_data_size>test</max_data_size>
<logfile>test</logfile>
<db_start_line>test</db_start_line>
<db_stop_line>test</db_stop_line>
<root_passwd>test</root_passwd>
</configuration>
"""
print xml_code
parser.Parse(xml_code)
del parser
c = Conf()
MfG
Olaf Radicke
--
===================================================
"Meine Meinung steht fest. Bitte verwirren sie mich
nicht mit Tatsachen!"
Unbekannt.
===================================================