如何在PHP/Python中解析WSDL?
我想知道PHP或Python中是否有任何东西可以正确解析WSDL文件。例如,我需要解析。PHP SOAP扩展生成如下代码:如何在PHP/Python中解析WSDL?,php,python,soap,wsdl,onvif,Php,Python,Soap,Wsdl,Onvif,我想知道PHP或Python中是否有任何东西可以正确解析WSDL文件。例如,我需要解析。PHP SOAP扩展生成如下代码: <ns1:GetStreamUri env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"> <param0 xsi:type="ns2:Map"> <item> <key xsi:type="xsd:string">
<ns1:GetStreamUri env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
<param0 xsi:type="ns2:Map">
<item>
<key xsi:type="xsd:string">StreamSetup</key>
<value xsi:type="ns2:Map">
<item>
<key xsi:type="xsd:string">Stream</key>
<value xsi:type="xsd:string">RTP-Unicast</value>
</item>
<item>
<key xsi:type="xsd:string">Transport</key>
<value xsi:type="ns2:Map">
<item>
<key xsi:type="xsd:string">Protocol</key>
<value xsi:type="xsd:string">UDP</value>
</item>
</value>
</item>
</value>
</item>
<item>
<key xsi:type="xsd:string">ProfileToken</key>
<value xsi:type="xsd:string">main</value>
</item>
</param0>
</ns1:GetStreamUri>
<GetStreamUri xmlns="http://www.onvif.org/ver10/media/wsdl">
<StreamSetup>
<Stream xmlns="http://www.onvif.org/ver10/schema">RTP-Unicast</Stream>
<Transport xmlns="http://www.onvif.org/ver10/schema">
<Protocol>UDP</Protocol>
</Transport>
</StreamSetup>
<ProfileToken>main</ProfileToken>
</GetStreamUri>
流设置
流动
RTP单播
运输
协议
UDP
ProfileToken
主要的
我需要这样:
<ns1:GetStreamUri env:encodingStyle="http://www.w3.org/2003/05/soap-encoding">
<param0 xsi:type="ns2:Map">
<item>
<key xsi:type="xsd:string">StreamSetup</key>
<value xsi:type="ns2:Map">
<item>
<key xsi:type="xsd:string">Stream</key>
<value xsi:type="xsd:string">RTP-Unicast</value>
</item>
<item>
<key xsi:type="xsd:string">Transport</key>
<value xsi:type="ns2:Map">
<item>
<key xsi:type="xsd:string">Protocol</key>
<value xsi:type="xsd:string">UDP</value>
</item>
</value>
</item>
</value>
</item>
<item>
<key xsi:type="xsd:string">ProfileToken</key>
<value xsi:type="xsd:string">main</value>
</item>
</param0>
</ns1:GetStreamUri>
<GetStreamUri xmlns="http://www.onvif.org/ver10/media/wsdl">
<StreamSetup>
<Stream xmlns="http://www.onvif.org/ver10/schema">RTP-Unicast</Stream>
<Transport xmlns="http://www.onvif.org/ver10/schema">
<Protocol>UDP</Protocol>
</Transport>
</StreamSetup>
<ProfileToken>main</ProfileToken>
</GetStreamUri>
RTP单播
UDP
主要的
我已经通过扩展默认的SOAP扩展生成了第二个示例中的请求,但仍然需要添加所有类型、名称空间等。。。我不知道如何解析。。。因此,是否有某种方法可以根据WSDL文档中提供的规范生成此请求?当然有。你查过肥皂水了吗? 可能是python最强大的SOAP库 它就像
from suds.client import Client
client = Client("http://example.com/foo.wsdl")
client.service.someMethod(someParameter)
只要在Stackoverflow上搜索肥皂水,你就会找到大量的例子和进一步的帮助。yap。我已经试过了,没用。这里有一个例子