File:  [Repository] / MPIWGWeb / Attic / wikixml2sql.py
Revision 1.1.2.1: download - view: text, annotated - select for diffs - revision graph
Sun Aug 27 05:40:45 2006 UTC (17 years, 9 months ago) by dwinter
Branches: r2
index

import xml.parsers.expat
import psycopg

filename="mann.xml"

# 3 handler functions
global toggle
toggle=False

global c

def quote(str):
    str=str.replace("'","\\\'")
    return str.encode('utf-8')

def start_element(name, attrs):
    global toggle
    if name=="title":
        toggle=True
def end_element(name):
    global toggle
    if name=="title":
        toggle=False
def char_data(data):
    global toggle
    global c
    if toggle:
        splitted=data.split()
        if splitted >1:
            lastname=splitted[-1]
            firstname=" ".join(splitted[0:-1])
        else:
            lastname=splitted[0]
            firstname=""
        print "INSERT into persons (firstname,lastname) VALUES ('%s','%s')"% (quote(firstname),quote(lastname))
        c.execute("INSERT into persons (firstname,lastname) VALUES ('%s','%s')"% (quote(firstname),quote(lastname)))
        c.commit()
    
    
o = psycopg.connect('dbname=authorities user=dwinter password=3333',serialize=0) 
c = o.cursor() 

p = xml.parsers.expat.ParserCreate()

p.StartElementHandler = start_element
p.EndElementHandler = end_element
p.CharacterDataHandler = char_data
fh=file(filename)
p.ParseFile(fh)

o.close()

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>