PyXB 介绍
PyXB (“pixbee”) 是一个纯 Python 的类库用来根据 XML Schema 生成对应的 Python
类,开发人员可以使用这些类来操作XML Schema 数据。
示例代码:
import weather import time import pyxb.utils.domutils as domutils import sys import pyxb.standard.bindings.soapenv as soapenv import pyxb.standard.bindings.soapenc as soapenc import urllib2 zip = 85711 if 1 < len(sys.argv): zip = int(sys.argv[1]) # Create an envelope, and give it a body that is the request for the # service we want. env = soapenv.Envelope() env.setBody(weather.GetCityForecastByZIP(ZIP=zip)) # Invoke the service uri = urllib2.Request('http://ws.cdyne.com/WeatherWS/Weather.asmx', env.toxml(), { 'SOAPAction' : "http://ws.cdyne.com/WeatherWS/GetCityForecastByZIP", 'Content-Type': 'text/xml' } ) rxml = urllib2.urlopen(uri).read() # Convert the response to a SOAP envelope, then extract the actual # response from the wildcard elements of the body. Note that because # the weather namespace was registered, PyXB already created the # binding for the response. soap_resp = soapenv.CreateFromDOM(domutils.StringToDOM(rxml)) resp = soap_resp.Body().wildcardElements()[0] fc_return = resp.GetCityForecastByZIPResult() if fc_return.Success(): print 'Got response for %s, %s:' % (fc_return.City(), fc_return.State()) for fc in fc_return.ForecastResult().Forecast(): when = time.strftime('%A, %B %d %Y', fc.Date().timetuple()) outlook = fc.Desciption() # typos in WSDL left unchanged low = fc.Temperatures().MorningLow() high = fc.Temperatures().DaytimeHigh() print ' %s: %s, from %s to %s' % (when, outlook, low, high)
PyXB 官网
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。