PHP查询XMLSQLQuery

时间:2016-07-21 15:07:21

标签: php xpath xsd wsdl

当在堆栈溢出时搜索XMLSQLQuery时,会找到0结果。所以我真的希望有人可以提供帮助。

我有一个支持XMLXPathQuery 的WSDL文件的链接(我在使用WSDL文件方面没有经验,之前从未完成过XMLSQLQuery,只有标准的PHP soapclient标准SOAP调用)

我还有一个用户名,密码和数据库名称。

理论上我可以运行如下所示的xmlsqlquery:"select lastname from users where statusflag = 1 for xml auto"

但是我如何连接(使用用户名,密码和dbname)这个支持XMLSQLQuery的WSDL文件以及如何在PHP中运行查询。

1 个答案:

答案 0 :(得分:0)

好吧,对于其他任何人来说,看起来WSDL文件的主要调用函数如下:

<s:element name="StringXPathQuery">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="XPathExpression" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="Username" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="Password" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="DBName" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>

(正确定位不像这里)

因此可以在PHP中使用SoapClient。但这些字段不在WSDL文件中,因此可以猜测或尝试获取有关该字段的文档。

示例:

$client = new SoapClient("some wsdl url");
$user = $client->StringXPathQuery(array(
    'XPathExpression' => 'user[@lastname="Hans"]',
    'Username' => 'some username',
    'Password' => 'some password',
    'DBName' => 'some db name'
  ));