#小船 2014-12-21整理
#Primitives
from soaplib.core.model.primitive import String
from lxml import etree
parent = etree.Element("parent")
print parent
String.to_parent_element("abcd","tns",parent)
string_element = parent.getchildren()[0]
print etree.tostring(string_element)
print String.from_xml(string_element)
print String.get_type_name()
#print String.get_type_name_ns()
后续研究:
#Arrays
from soaplib.core.model.clazz import Array
from soaplib.core.model.primitive import String
from lxml import etree
parent = etree.Element("parent")
array_serializer = Array(String)
array_serializer.to_parent_element(['a','b','c','d'],'tns',parent)
element=parent[0]
print etree.tostring(element)
print array_serializer.from_xml(element)
class:
# -*- coding: UTF-8 -*-
#class
from soaplib.core.model.primitive import String, Integer
from soaplib.core.model.clazz import ClassModel, Array
from lxml import etree
class Permission(ClassModel):
___namespace__ = "permission"
application = String
feature = String
class User(ClassModel):
__namespace__ = 'user'
userid = Integer
username = String
lastname = String
lastname = String
permissions = Array(Permission)
u = User()
u.username = "bill"
u.permissions = []
p = Permission()
p.application = 'email'
p.feature = 'send'
u.permissions.append(p)
parent = etree.Element('parent')
User.to_parent_element(u,'tns',parent)
element = parent[0]
print etree.tostring(element)
print User.from_xml(element).username
结果:
<ns0:User xmlns:ns0="tns"><ns1:username xmlns:ns1="user">bill</ns1:username><ns2:permissions xmlns:ns2="user"><ns3:Permission xmlns:ns3="None"><ns3:feature>send</ns3:feature><ns3:application>email</ns3:application></ns3:Permission></ns2:permissions></ns0:User>
bill
#Attachment
from soaplib.core.model.binary import Attachment
from lxml import etree
a = Attachment(data='my binary data')
parent = etree.Element('parent')
Attachment.to_parent_element(a,'tns',parent)
element = parent[0]
print etree.tostring(element)
print Attachment.from_xml(element)
print Attachment.from_xml(element).data
# a2 = Attachment(fileName='test.data')
<ns0:retval xmlns:ns0="tns">bXkgYmluYXJ5IGRhdGE=
</ns0:retval>
<soaplib.core.model.binary.Attachment object at 0x01ECFFB0>
my binary data