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, 10 months ago) by dwinter
Branches: r2
index

    1: import xml.parsers.expat
    2: import psycopg
    3: 
    4: filename="mann.xml"
    5: 
    6: # 3 handler functions
    7: global toggle
    8: toggle=False
    9: 
   10: global c
   11: 
   12: def quote(str):
   13:     str=str.replace("'","\\\'")
   14:     return str.encode('utf-8')
   15: 
   16: def start_element(name, attrs):
   17:     global toggle
   18:     if name=="title":
   19:         toggle=True
   20: def end_element(name):
   21:     global toggle
   22:     if name=="title":
   23:         toggle=False
   24: def char_data(data):
   25:     global toggle
   26:     global c
   27:     if toggle:
   28:         splitted=data.split()
   29:         if splitted >1:
   30:             lastname=splitted[-1]
   31:             firstname=" ".join(splitted[0:-1])
   32:         else:
   33:             lastname=splitted[0]
   34:             firstname=""
   35:         print "INSERT into persons (firstname,lastname) VALUES ('%s','%s')"% (quote(firstname),quote(lastname))
   36:         c.execute("INSERT into persons (firstname,lastname) VALUES ('%s','%s')"% (quote(firstname),quote(lastname)))
   37:         c.commit()
   38:     
   39:     
   40: o = psycopg.connect('dbname=authorities user=dwinter password=3333',serialize=0) 
   41: c = o.cursor() 
   42: 
   43: p = xml.parsers.expat.ParserCreate()
   44: 
   45: p.StartElementHandler = start_element
   46: p.EndElementHandler = end_element
   47: p.CharacterDataHandler = char_data
   48: fh=file(filename)
   49: p.ParseFile(fh)
   50: 
   51: o.close()

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