in sample/topic/server.py [0:0]
def xml_decode(self, data, msg):
if data == "":
_LOGGER.error("Data is \"\".")
return False
try:
dom = xml.dom.minidom.parseString(data)
except Exception as e:
_LOGGER.error("Parse string fail, exception:%s" % e)
return False
node_list = dom.getElementsByTagName("Notification")
if not node_list:
_LOGGER.error("Get node of \"Notification\" fail")
return False
data_dic = {}
for node in node_list[0].childNodes:
if node.nodeName != "#text" and node.childNodes != []:
data_dic[node.nodeName] = node.firstChild.toxml().encode('utf-8')
key_list = ["TopicOwner", "TopicName", "Subscriber", "SubscriptionName", "MessageId", "MessageMD5", "Message",
"PublishTime"]
for key in key_list:
if key not in data_dic.keys():
_LOGGER.error("Check item fail. Need \"%s\"." % key)
return False
msg.topic_owner = data_dic["TopicOwner"]
msg.topic_name = data_dic["TopicName"]
msg.subscriber = data_dic["Subscriber"]
msg.subscription_name = data_dic["SubscriptionName"]
msg.message_id = data_dic["MessageId"]
msg.message_md5 = data_dic["MessageMD5"]
msg.message_tag = data_dic["MessageTag"] if data_dic.has_key("MessageTag") else ""
msg.message = data_dic["Message"]
msg.publish_time = data_dic["PublishTime"]
return True