Profile
Pastes: 76632
Members: 1489

Paste

Plain view | Edit code: here. | Add this to your website. | Report abuse.

Short URL: N/A

Pasted as Python by no on Saturday, July 11th, 2009 1:41am ( 5 years ago )

  1. import xml.sax.handler
  2. import xml.sax
  3. import sys
  4. class SOHandler(xml.sax.handler.ContentHandler):
  5.         def __init__(self):
  6.                 self.errParse = 0
  7.  
  8.         def startElement(self, name, attributes):
  9.                 if name != "row":
  10.                         self.table = name;
  11.                         self.outFile = open(name+".sql","w")
  12.                         self.errfile = open(name+".err","w")
  13.                 else:
  14.                         skip = 0
  15.                         currentRow = u"insert into "+self.table+"("
  16.                         for attr in attributes.keys():
  17.                                 currentRow += str(attr) + ","
  18.                         currentRow = currentRow[:-1]
  19.                         currentRow += u") values ("
  20.                         for attr in attributes.keys():
  21.                                 try:
  22.                                         currentRow += u'"{0}",'.format(attributes[attr].replace('\','\\').replace('"', '\"').replace("'", "\'"))
  23.                                except UnicodeEncodeError:
  24.                                        self.errParse += 1;
  25.                                        skip = 1;
  26.                                        self.errfile.write(currentRow)
  27.                        if skip != 1:
  28.                                currentRow = currentRow[:-1]
  29.                                currentRow += u");"
  30.                                #print len(attributes.keys())
  31.                                self.outFile.write(currentRow.encode("utf-8"))
  32.                                self.outFile.write("
  33. ")
  34.                                self.outFile.flush()
  35.                                print currentRow.encode("utf-8");
  36.  
  37.        def characters(self, data):
  38.                pass
  39.  
  40.        def endElement(self, name):
  41.                pass
  42.  
  43. if len(sys.argv) < 2:
  44.        print "Give me an xml file argument!"
  45.        sys.exit(1)
  46.  
  47. parser = xml.sax.make_parser()
  48. handler = SOHandler()
  49. parser.setContentHandler(handler)
  50. parser.parse(sys.argv[1])
  51. print handler.errParse
  52.  

Revise this Paste
Your Name:
Code Language:
 
Security Image:
Text seen in Image:
Comments

Nothing has been added as yet. Post a comment.