我正在尝试使用PHP的SoapClient
类来查询Web服务。它在某种程度上工作正常,但我想访问我在回复的<SOAP-ENV:Header>
部分中找到的东西 - 我正在努力想看看如何!
如果我拨打以下电话:
$transactions = $soapClient->getTransactionList($params);
$response = $soapClient->__getLastResponse();
$response
的内容是:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://api.affiliatewindow.com/">
<SOAP-ENV:Header>
<ns1:getQuotaResponse>123456</ns1:getQuotaResponse>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ns1:getTransactionListResponse>
<ns1:getTransactionListReturn>
<ns1:Transaction>
<-- Data here, removed for brevity -->
</ns1:Transaction>
<ns1:Transaction>
<-- Data here, removed for brevity -->
</ns1:Transaction>
<ns1:Transaction>
<-- Data here, removed for brevity -->
</ns1:Transaction>
</ns1:getTransactionListReturn>
</ns1:getTransactionListResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
我的$transactions
变量包含一系列与<SOAP-ENV:Body>
内容相对应的交易,这很棒,但我如何访问getQuotaResponse
的值,<SOAP-ENV:Header>
位于{{1}}内1}}?
答案 0 :(得分:0)
可能有一种更好的方式来访问标题中的数据,但您可以使用
preg_match("/getQuotaResponse>([^<]+)/",$response, $match);
echo $match[1];
输出:
123456