2

下面的代码抛出 SAXParseException: "mismatched tag":

from suds.client import Client <br>
url = 'http://www.didww.com/api/?wsdl'
client = Client(url, cache=None)      
print client

是suds有问题,还是wsdl有问题?

4

3 回答 3

1

您是否在浏览器或 XML 查看器中查看过 WSDL 文件?那应该回答您关于问题是否在 wsdl 中的问题。异常表明它有问题。

于 2009-11-06T10:12:53.860 回答
1

suds 0.3.3 似乎对我有用(没有缓存选项 - None 在我的 suds 版本中不是缓存的有效选项):

In [4]: from suds.client import Client
In [5]: url = 'https://xml.192.com/IDSearch.cfc?wsdl'
In [6]: c = Client(url)
In [7]: print c

Suds ( https://fedorahosted.org/suds/ )  version: 0.3.3 GA  build:     R413-20081204

Service ( IDSearch ) tns="http://corpwsdl.oneninetwo"
Prefixes (1)
  ns0 = "http://rpc.xml.coldfusion"
Ports (1):
  (IDSearch.cfc)
     Methods (1):
        search(xs:string xml, )
     Types (1):
        ns0:CFCInvocationException
于 2009-11-06T10:14:28.697 回答
0

我试图重现您的问题,但一切都对我有用。

我正在使用泡沫 0.4

跑步

from suds.client import Client

client = Client('http://api.didww.com/api/index.php?wsdl', cache=None)

print client

Suds ( https://fedorahosted.org/suds/ )  version: 0.4 GA  build: R699-20100913

Service ( DID World Wide ) tns="urn:didww"
Prefixes (2)
  ns0 = "http://schemas.xmlsoap.org/soap/encoding/"
  ns1 = "urn:didww"
Ports (1):
  (DID World WidePort)
     Methods (11):

    buildmapping(xs:string auth_string, xs:int did_id,   xs:string map_proto,s:string map_uri, xs:int add_did, )
        change_mapping(xs:string auth_string, xs:string did_number, xs:string map_proto, xs:string map_uri, xs:int add_did, )
        did_cancel(xs:string auth_string, xs:string did_number, )
        get_did_details(xs:string auth_string, xs:string did_number, )
        get_region_details(xs:string auth_string, xs:string uniq, )
        getcities(xs:string auth_string, xs:int country_id, )
        getcountries(xs:string auth_string, )
        new_order_renew(xs:string auth_string, xs:string did_number, xs:int period, xs:int autorenew, )
        neworder(xs:string auth_string, xs:string hashkey, xs:string uniq, xs:int autorenew, xs:int period, )
        order_autorenew_status(xs:string auth_string, xs:string did_number, xs:int status, )
        order_cancel(xs:string auth_string, xs:string did_number, )
     Types (55):
        ns0:Array
        CitiesArray
        City
        CountriesArray
        Country
        DID
        DID_data
        ns0:ENTITIES
        ns0:ENTITY
        ns0:ID
        ns0:IDREF
        ns0:IDREFS
        ns0:NCName
        ns0:NMTOKEN
        ns0:NMTOKENS
        ns0:NOTATION
        ns0:Name
        ns0:QName
        Region
        ns0:Struct
        ns0:anyURI
        ns0:arrayCoordinate
        ns0:base64
        ns0:base64Binary
        ns0:boolean
        ns0:byte
        ns0:date
        ns0:dateTime
        ns0:decimal
        ns0:double
        ns0:duration
        ns0:float
        ns0:gDay
        ns0:gMonth
        ns0:gMonthDay
        ns0:gYear
        ns0:gYearMonth
        ns0:hexBinary
        ns0:int
        ns0:integer
        ns0:language
        ns0:long
        ns0:negativeInteger
        ns0:nonNegativeInteger
        ns0:nonPositiveInteger
        ns0:normalizedString
        ns0:positiveInteger
        ns0:short
        ns0:string
        ns0:time
        ns0:token
        ns0:unsignedByte
        ns0:unsignedInt
        ns0:unsignedLong
        ns0:unsignedShort

我猜他们的 wsdl 文件有一段时间损坏了,但现在一切似乎都很好

希望有帮助

于 2011-11-07T11:11:27.303 回答