You should install SoapPy (not Soapy, be careful) and take a look of the possible types that SOAP defines (here).
Then you can parse your message like this:
#!/usr/bin/env python
# http://stackoverflow.com/questions/22869427/how-to-print-hello-world-to-console
import SOAPpy
import logging
logging.getLogger().setLevel(logging.DEBUG)
item_str='<?xml version="1.0" encoding="utf-8"?>\
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" \
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" \
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">\
<soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">\
<Item xsi:type="Dp_Data">\
<UCPTname>Net/MB485/MAIN POWER/Fb/PowerSum</UCPTname>\
<UCPTlastUpdate>2014-04-04T13:34:17.441-04:00</UCPTlastUpdate>\
<UCPTformatDescription>#0000000000000000[0].SNVT_power_f#SI</UCPTformatDescription>\
<UCPTvalue LonFormat="#0000000000000000[0].SNVT_power_f#SI">9330.949</UCPTvalue>\
<UCPTpointStatus>AL_OFFLINE</UCPTpointStatus>\
<UCPTpriority>255</UCPTpriority>\
<UCPTpropagate>0</UCPTpropagate>\
</Item>\
</soap:Body>\
</soap:Envelope>'
expected = { 'Item': {
'UCPTname': (SOAPpy.NS.XSD, "string"),
'UCPTlastUpdate': (SOAPpy.NS.XSD, "dateTime"),
'UCPTpriority': (SOAPpy.NS.XSD, "unsignedByte"),
'UCPTpropagate': (SOAPpy.NS.XSD, "boolean"),
}}
item = SOAPpy.parseSOAPRPC(item_str, rules=expected)
logging.debug("Name: %s" % item['UCPTname'])
logging.debug("Last update: %s" % (item['UCPTlastUpdate'],))
logging.debug("Priority: %s" % item['UCPTpriority'])
logging.debug("Should this be propagated? %s" % ('Yeep' if item['UCPTpropagate'] else 'Nopes'))