BeautifulSoup xml eintrag schreiben

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
The Hit-Man
User
Beiträge: 407
Registriert: Montag 20. Februar 2006, 18:11
Wohnort: Menden / Sauerland
Kontaktdaten:

Mittwoch 4. Juni 2008, 09:12

Ich habe mit BeautifulSoup eine kleine Routine geschrieben, um Benutzerdaten auszulesen. das ganze sieht wie folgt aus. Ich weiß, das jeder von Euch es anders programmieren würde ( aber bin ja Anfänger ).

Code: Alles auswählen

    def getData (self):
        print "lese benutzerdaten aus config datei"
        data = open (os.path.expanduser('~/.webolg/data.xml'))
        soup = BeautifulSoup(data.read())
        username = soup.findAll ('username')
        self.username = username [0].contents [0]
        print self.username
        password = soup.findAll ('password')
        self.password = password [0].contents [0]
        print self.password
        data.close ()
Meine Frage ist eigentlich, kann ich mit BeautifulSoup auch die Einträge in meine XML Datei ändern und zurück auf Platte schreiben. Es handelt sich ja bei mir um eine Konfigurationsdatei.
The Hit-Man
User
Beiträge: 407
Registriert: Montag 20. Februar 2006, 18:11
Wohnort: Menden / Sauerland
Kontaktdaten:

Mittwoch 4. Juni 2008, 11:16

ich habe es so weit geschafft, das ich meine Einträge im Objekt soup ändern kann:

Code: Alles auswählen

        soup.findAll ('username')[0].contents[0].replaceWith ('test')
        print soup ()
Jetzt möchte ich gerne soup zurück schreiben. Jemand eine Ahnung, wie das geht?
The Hit-Man
User
Beiträge: 407
Registriert: Montag 20. Februar 2006, 18:11
Wohnort: Menden / Sauerland
Kontaktdaten:

Mittwoch 4. Juni 2008, 11:40

hat dann so geklappt:

Code: Alles auswählen

        soup.findAll ('username')[0].contents[0].replaceWith ('test')
        data = open (os.path.join(pfad, "data.xml"),"w")
        data.write (str(soup))
        data.close ()
Antworten