Creo que no has leído el manual de urllib2: el segundo parámetro de urlopen() debe ser una cadena en formato nombredevariable=valor (igual que si fuese vía GET), esta cadena la podés crear usando
Por lo que tu código debería ser
Código python:
Ver originalurllib2.urlopen(req, urllib.urlencode({'datos': xml}))
y te llegaría vía POST una variable "datos" con el contenido del XML.
No olvides utilizar el resaltado de código