Seite 1 von 1

BeautifulSoup xml eintrag schreiben

Verfasst: Mittwoch 4. Juni 2008, 09:12
von The Hit-Man
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.

Verfasst: Mittwoch 4. Juni 2008, 11:16
von The Hit-Man
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?

Verfasst: Mittwoch 4. Juni 2008, 11:40
von The Hit-Man
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 ()