default.py 文件源码

python
阅读 25 收藏 0 点赞 0 评论 0

项目:server 作者: viur-framework 项目源码 文件源码
def serializeXML( data ):
    def recursiveSerializer( data, element ):
        if isinstance(data, dict):
            element.setAttribute('ViurDataType', 'dict')
            for key in data.keys():
                childElement = recursiveSerializer(data[key], doc.createElement(key) )
                element.appendChild( childElement )
        elif isinstance(data, (tuple, list)):
            element.setAttribute('ViurDataType', 'list')
            for value in data:
                childElement = recursiveSerializer(value, doc.createElement('entry') )
                element.appendChild( childElement )
        else:
            if isinstance(data ,  bool):
                element.setAttribute('ViurDataType', 'boolean')
            elif isinstance( data, float ) or isinstance( data, int ):
                element.setAttribute('ViurDataType', 'numeric')
            elif isinstance( data, str ) or isinstance( data, unicode ):
                element.setAttribute('ViurDataType', 'string')
            elif isinstance( data, datetime ) or isinstance( data, date ) or isinstance( data, time ):
                if isinstance( data, datetime ):
                    element.setAttribute('ViurDataType', 'datetime')
                elif isinstance( data, date ):
                    element.setAttribute('ViurDataType', 'date')
                else:
                    element.setAttribute('ViurDataType', 'time')
                data = data.isoformat()
            elif data is None:
                element.setAttribute('ViurDataType', 'none')
                data = ""
            else:
                raise NotImplementedError("Type %s is not supported!" % type(data))
            element.appendChild( doc.createTextNode( unicode(data) ) )
        return element

    dom = minidom.getDOMImplementation()
    doc = dom.createDocument(None, u"ViurResult", None)
    elem = doc.childNodes[0]
    return( recursiveSerializer( data, elem ).toprettyxml(encoding="UTF-8") )
评论列表


问题


面经


文章

微信
公众号

扫码关注公众号