Php 如何打印响应soap请求的单个xml值?
这是我的SOAP客户端请求代码:Php 如何打印响应soap请求的单个xml值?,php,soap,Php,Soap,这是我的SOAP客户端请求代码: <?php $cf = "DTRMRA48P55D539C"; $chiave = "700400125745081"; $numdoc = "AV1871102"; $tipodoc = 1; //$numid = $_POST['numid']; $codoper = "PCCPLA66T11L719L"; $idag = "35852"; $wsdl = "https://p
<?php
$cf = "DTRMRA48P55D539C";
$chiave = "700400125745081";
$numdoc = "AV1871102";
$tipodoc = 1;
//$numid = $_POST['numid'];
$codoper = "PCCPLA66T11L719L";
$idag = "35852";
$wsdl = "https://portalws.inps.it/ws/wsCessioneQuintoWebTest/WsInpsCessioneQuinto.asmx?WSDL";
$local_cert = "C:\\Apache24\htdocs\sirio2.pem";
$soapClient = new SoapClient($wsdl, array('local_cert' => $local_cert, 'trace' => 1, 'soap_version' => SOAP_1_1));
try {
$result = $soapClient->RichiestaCedibilita(array('CodFiscale' => $cf, 'ChiavePensione' => $chiave, 'NumDocumento' => $numdoc, 'TipoDocumento' => 1, 'CodiceOperatore' => $codoper, 'IdentificativoAgenzia' => $idag));
print_r($soapClient->__getlastResponse());
$soap = print_r($soapClient->__getlastResponse());
print_r($soap);
}
catch (SoapFault $exception) {
echo $exception;
}
?>
<?xml version="1.0" encoding="utf-8" ?><DatiCedibilita><Cedibilita><Id>20190000277</Id><CodiceFiscale>DTRMRA48P55D539C</CodiceFiscale><ChiavePensione>700400125745081</ChiavePensione><Cognome>DTR</Cognome><Nome>MRA</Nome><DataNascita>1948-09-15</DataNascita><CodiceSede>0100</CodiceSede><DenominazioneSede>AGRIGENTO</DenominazioneSede><IndirizzoSede>VIA PICONE 20/30 - 92100 - AGRIGENTO - AG</IndirizzoSede><Importo>250.0000</Importo><DataUltimaRichiestaCedibilita>2019-01-15</DataUltimaRichiestaCedibilita><RichiedenteUltimaCedibilita>Istituto di Credito</RichiedenteUltimaCedibilita><DataScadenzaAOI>202002</DataScadenzaAOI><DataRilascio>2019-01-16</DataRilascio><Note></Note><ProtocolloINPS>INPS.TESTC1.16/01/2019.0000287</ProtocolloINPS><CodiceErrore>0</CodiceErrore><DescrizioneErrore></DescrizioneErrore></Cedibilita></DatiCedibilita><?xml version="1.0" encoding="utf-8" ?><DatiCedibilita><Cedibilita><Id>20190000277</Id><CodiceFiscale>DTRMRA48P55D539C</CodiceFiscale><ChiavePensione>700400125745081</ChiavePensione><Cognome>DTR</Cognome><Nome>MRA</Nome><DataNascita>1948-09-15</DataNascita><CodiceSede>0100</CodiceSede><DenominazioneSede>AGRIGENTO</DenominazioneSede><IndirizzoSede>VIA PICONE 20/30 - 92100 - AGRIGENTO - AG</IndirizzoSede><Importo>250.0000</Importo><DataUltimaRichiestaCedibilita>2019-01-15</DataUltimaRichiestaCedibilita><RichiedenteUltimaCedibilita>Istituto di Credito</RichiedenteUltimaCedibilita><DataScadenzaAOI>202002</DataScadenzaAOI><DataRilascio>2019-01-16</DataRilascio><Note></Note><ProtocolloINPS>INPS.TESTC1.16/01/2019.0000287</ProtocolloINPS><CodiceErrore>0</CodiceErrore><DescrizioneErrore></DescrizioneErrore></Cedibilita></DatiCedibilita>1 ?>
$id = $soap->id;
print("Id=" . $id);
$id = $soap['id'];
print("Id=" . $id);
这是我的回答:
<?php
$cf = "DTRMRA48P55D539C";
$chiave = "700400125745081";
$numdoc = "AV1871102";
$tipodoc = 1;
//$numid = $_POST['numid'];
$codoper = "PCCPLA66T11L719L";
$idag = "35852";
$wsdl = "https://portalws.inps.it/ws/wsCessioneQuintoWebTest/WsInpsCessioneQuinto.asmx?WSDL";
$local_cert = "C:\\Apache24\htdocs\sirio2.pem";
$soapClient = new SoapClient($wsdl, array('local_cert' => $local_cert, 'trace' => 1, 'soap_version' => SOAP_1_1));
try {
$result = $soapClient->RichiestaCedibilita(array('CodFiscale' => $cf, 'ChiavePensione' => $chiave, 'NumDocumento' => $numdoc, 'TipoDocumento' => 1, 'CodiceOperatore' => $codoper, 'IdentificativoAgenzia' => $idag));
print_r($soapClient->__getlastResponse());
$soap = print_r($soapClient->__getlastResponse());
print_r($soap);
}
catch (SoapFault $exception) {
echo $exception;
}
?>
<?xml version="1.0" encoding="utf-8" ?><DatiCedibilita><Cedibilita><Id>20190000277</Id><CodiceFiscale>DTRMRA48P55D539C</CodiceFiscale><ChiavePensione>700400125745081</ChiavePensione><Cognome>DTR</Cognome><Nome>MRA</Nome><DataNascita>1948-09-15</DataNascita><CodiceSede>0100</CodiceSede><DenominazioneSede>AGRIGENTO</DenominazioneSede><IndirizzoSede>VIA PICONE 20/30 - 92100 - AGRIGENTO - AG</IndirizzoSede><Importo>250.0000</Importo><DataUltimaRichiestaCedibilita>2019-01-15</DataUltimaRichiestaCedibilita><RichiedenteUltimaCedibilita>Istituto di Credito</RichiedenteUltimaCedibilita><DataScadenzaAOI>202002</DataScadenzaAOI><DataRilascio>2019-01-16</DataRilascio><Note></Note><ProtocolloINPS>INPS.TESTC1.16/01/2019.0000287</ProtocolloINPS><CodiceErrore>0</CodiceErrore><DescrizioneErrore></DescrizioneErrore></Cedibilita></DatiCedibilita><?xml version="1.0" encoding="utf-8" ?><DatiCedibilita><Cedibilita><Id>20190000277</Id><CodiceFiscale>DTRMRA48P55D539C</CodiceFiscale><ChiavePensione>700400125745081</ChiavePensione><Cognome>DTR</Cognome><Nome>MRA</Nome><DataNascita>1948-09-15</DataNascita><CodiceSede>0100</CodiceSede><DenominazioneSede>AGRIGENTO</DenominazioneSede><IndirizzoSede>VIA PICONE 20/30 - 92100 - AGRIGENTO - AG</IndirizzoSede><Importo>250.0000</Importo><DataUltimaRichiestaCedibilita>2019-01-15</DataUltimaRichiestaCedibilita><RichiedenteUltimaCedibilita>Istituto di Credito</RichiedenteUltimaCedibilita><DataScadenzaAOI>202002</DataScadenzaAOI><DataRilascio>2019-01-16</DataRilascio><Note></Note><ProtocolloINPS>INPS.TESTC1.16/01/2019.0000287</ProtocolloINPS><CodiceErrore>0</CodiceErrore><DescrizioneErrore></DescrizioneErrore></Cedibilita></DatiCedibilita>1 ?>
$id = $soap->id;
print("Id=" . $id);
$id = $soap['id'];
print("Id=" . $id);
20190000277DTRMRA48P55D539C700125745081DTRMRA1948-09-150100AGRIGENTOVIA PICONE 20/30-92100-AGRIGENTO-AG250.0002019-01-15 Credito 202002019-01-16INPS.TESTC1.16/01/2019.000027020190000277DTRMRA48P55D539C700125745081DTRMRA1948-09-150100Agrigento-AG250.000019-01-15-15CreditO202002019-01-16INPS.TESTC1.16/01/2019.000028701?>
如何打印单个标记值例如:
<?php
$cf = "DTRMRA48P55D539C";
$chiave = "700400125745081";
$numdoc = "AV1871102";
$tipodoc = 1;
//$numid = $_POST['numid'];
$codoper = "PCCPLA66T11L719L";
$idag = "35852";
$wsdl = "https://portalws.inps.it/ws/wsCessioneQuintoWebTest/WsInpsCessioneQuinto.asmx?WSDL";
$local_cert = "C:\\Apache24\htdocs\sirio2.pem";
$soapClient = new SoapClient($wsdl, array('local_cert' => $local_cert, 'trace' => 1, 'soap_version' => SOAP_1_1));
try {
$result = $soapClient->RichiestaCedibilita(array('CodFiscale' => $cf, 'ChiavePensione' => $chiave, 'NumDocumento' => $numdoc, 'TipoDocumento' => 1, 'CodiceOperatore' => $codoper, 'IdentificativoAgenzia' => $idag));
print_r($soapClient->__getlastResponse());
$soap = print_r($soapClient->__getlastResponse());
print_r($soap);
}
catch (SoapFault $exception) {
echo $exception;
}
?>
<?xml version="1.0" encoding="utf-8" ?><DatiCedibilita><Cedibilita><Id>20190000277</Id><CodiceFiscale>DTRMRA48P55D539C</CodiceFiscale><ChiavePensione>700400125745081</ChiavePensione><Cognome>DTR</Cognome><Nome>MRA</Nome><DataNascita>1948-09-15</DataNascita><CodiceSede>0100</CodiceSede><DenominazioneSede>AGRIGENTO</DenominazioneSede><IndirizzoSede>VIA PICONE 20/30 - 92100 - AGRIGENTO - AG</IndirizzoSede><Importo>250.0000</Importo><DataUltimaRichiestaCedibilita>2019-01-15</DataUltimaRichiestaCedibilita><RichiedenteUltimaCedibilita>Istituto di Credito</RichiedenteUltimaCedibilita><DataScadenzaAOI>202002</DataScadenzaAOI><DataRilascio>2019-01-16</DataRilascio><Note></Note><ProtocolloINPS>INPS.TESTC1.16/01/2019.0000287</ProtocolloINPS><CodiceErrore>0</CodiceErrore><DescrizioneErrore></DescrizioneErrore></Cedibilita></DatiCedibilita><?xml version="1.0" encoding="utf-8" ?><DatiCedibilita><Cedibilita><Id>20190000277</Id><CodiceFiscale>DTRMRA48P55D539C</CodiceFiscale><ChiavePensione>700400125745081</ChiavePensione><Cognome>DTR</Cognome><Nome>MRA</Nome><DataNascita>1948-09-15</DataNascita><CodiceSede>0100</CodiceSede><DenominazioneSede>AGRIGENTO</DenominazioneSede><IndirizzoSede>VIA PICONE 20/30 - 92100 - AGRIGENTO - AG</IndirizzoSede><Importo>250.0000</Importo><DataUltimaRichiestaCedibilita>2019-01-15</DataUltimaRichiestaCedibilita><RichiedenteUltimaCedibilita>Istituto di Credito</RichiedenteUltimaCedibilita><DataScadenzaAOI>202002</DataScadenzaAOI><DataRilascio>2019-01-16</DataRilascio><Note></Note><ProtocolloINPS>INPS.TESTC1.16/01/2019.0000287</ProtocolloINPS><CodiceErrore>0</CodiceErrore><DescrizioneErrore></DescrizioneErrore></Cedibilita></DatiCedibilita>1 ?>
$id = $soap->id;
print("Id=" . $id);
$id = $soap['id'];
print("Id=" . $id);
Id=20190000277如果我是你,我会打电话给
var\u dump($soap)
。这将向您显示必须使用的数组/对象的结构。然后,您可以深入到这一点,以输出您想要的确切值
例如(如果是对象):
<?php
$cf = "DTRMRA48P55D539C";
$chiave = "700400125745081";
$numdoc = "AV1871102";
$tipodoc = 1;
//$numid = $_POST['numid'];
$codoper = "PCCPLA66T11L719L";
$idag = "35852";
$wsdl = "https://portalws.inps.it/ws/wsCessioneQuintoWebTest/WsInpsCessioneQuinto.asmx?WSDL";
$local_cert = "C:\\Apache24\htdocs\sirio2.pem";
$soapClient = new SoapClient($wsdl, array('local_cert' => $local_cert, 'trace' => 1, 'soap_version' => SOAP_1_1));
try {
$result = $soapClient->RichiestaCedibilita(array('CodFiscale' => $cf, 'ChiavePensione' => $chiave, 'NumDocumento' => $numdoc, 'TipoDocumento' => 1, 'CodiceOperatore' => $codoper, 'IdentificativoAgenzia' => $idag));
print_r($soapClient->__getlastResponse());
$soap = print_r($soapClient->__getlastResponse());
print_r($soap);
}
catch (SoapFault $exception) {
echo $exception;
}
?>
<?xml version="1.0" encoding="utf-8" ?><DatiCedibilita><Cedibilita><Id>20190000277</Id><CodiceFiscale>DTRMRA48P55D539C</CodiceFiscale><ChiavePensione>700400125745081</ChiavePensione><Cognome>DTR</Cognome><Nome>MRA</Nome><DataNascita>1948-09-15</DataNascita><CodiceSede>0100</CodiceSede><DenominazioneSede>AGRIGENTO</DenominazioneSede><IndirizzoSede>VIA PICONE 20/30 - 92100 - AGRIGENTO - AG</IndirizzoSede><Importo>250.0000</Importo><DataUltimaRichiestaCedibilita>2019-01-15</DataUltimaRichiestaCedibilita><RichiedenteUltimaCedibilita>Istituto di Credito</RichiedenteUltimaCedibilita><DataScadenzaAOI>202002</DataScadenzaAOI><DataRilascio>2019-01-16</DataRilascio><Note></Note><ProtocolloINPS>INPS.TESTC1.16/01/2019.0000287</ProtocolloINPS><CodiceErrore>0</CodiceErrore><DescrizioneErrore></DescrizioneErrore></Cedibilita></DatiCedibilita><?xml version="1.0" encoding="utf-8" ?><DatiCedibilita><Cedibilita><Id>20190000277</Id><CodiceFiscale>DTRMRA48P55D539C</CodiceFiscale><ChiavePensione>700400125745081</ChiavePensione><Cognome>DTR</Cognome><Nome>MRA</Nome><DataNascita>1948-09-15</DataNascita><CodiceSede>0100</CodiceSede><DenominazioneSede>AGRIGENTO</DenominazioneSede><IndirizzoSede>VIA PICONE 20/30 - 92100 - AGRIGENTO - AG</IndirizzoSede><Importo>250.0000</Importo><DataUltimaRichiestaCedibilita>2019-01-15</DataUltimaRichiestaCedibilita><RichiedenteUltimaCedibilita>Istituto di Credito</RichiedenteUltimaCedibilita><DataScadenzaAOI>202002</DataScadenzaAOI><DataRilascio>2019-01-16</DataRilascio><Note></Note><ProtocolloINPS>INPS.TESTC1.16/01/2019.0000287</ProtocolloINPS><CodiceErrore>0</CodiceErrore><DescrizioneErrore></DescrizioneErrore></Cedibilita></DatiCedibilita>1 ?>
$id = $soap->id;
print("Id=" . $id);
$id = $soap['id'];
print("Id=" . $id);
如果是数组:
<?php
$cf = "DTRMRA48P55D539C";
$chiave = "700400125745081";
$numdoc = "AV1871102";
$tipodoc = 1;
//$numid = $_POST['numid'];
$codoper = "PCCPLA66T11L719L";
$idag = "35852";
$wsdl = "https://portalws.inps.it/ws/wsCessioneQuintoWebTest/WsInpsCessioneQuinto.asmx?WSDL";
$local_cert = "C:\\Apache24\htdocs\sirio2.pem";
$soapClient = new SoapClient($wsdl, array('local_cert' => $local_cert, 'trace' => 1, 'soap_version' => SOAP_1_1));
try {
$result = $soapClient->RichiestaCedibilita(array('CodFiscale' => $cf, 'ChiavePensione' => $chiave, 'NumDocumento' => $numdoc, 'TipoDocumento' => 1, 'CodiceOperatore' => $codoper, 'IdentificativoAgenzia' => $idag));
print_r($soapClient->__getlastResponse());
$soap = print_r($soapClient->__getlastResponse());
print_r($soap);
}
catch (SoapFault $exception) {
echo $exception;
}
?>
<?xml version="1.0" encoding="utf-8" ?><DatiCedibilita><Cedibilita><Id>20190000277</Id><CodiceFiscale>DTRMRA48P55D539C</CodiceFiscale><ChiavePensione>700400125745081</ChiavePensione><Cognome>DTR</Cognome><Nome>MRA</Nome><DataNascita>1948-09-15</DataNascita><CodiceSede>0100</CodiceSede><DenominazioneSede>AGRIGENTO</DenominazioneSede><IndirizzoSede>VIA PICONE 20/30 - 92100 - AGRIGENTO - AG</IndirizzoSede><Importo>250.0000</Importo><DataUltimaRichiestaCedibilita>2019-01-15</DataUltimaRichiestaCedibilita><RichiedenteUltimaCedibilita>Istituto di Credito</RichiedenteUltimaCedibilita><DataScadenzaAOI>202002</DataScadenzaAOI><DataRilascio>2019-01-16</DataRilascio><Note></Note><ProtocolloINPS>INPS.TESTC1.16/01/2019.0000287</ProtocolloINPS><CodiceErrore>0</CodiceErrore><DescrizioneErrore></DescrizioneErrore></Cedibilita></DatiCedibilita><?xml version="1.0" encoding="utf-8" ?><DatiCedibilita><Cedibilita><Id>20190000277</Id><CodiceFiscale>DTRMRA48P55D539C</CodiceFiscale><ChiavePensione>700400125745081</ChiavePensione><Cognome>DTR</Cognome><Nome>MRA</Nome><DataNascita>1948-09-15</DataNascita><CodiceSede>0100</CodiceSede><DenominazioneSede>AGRIGENTO</DenominazioneSede><IndirizzoSede>VIA PICONE 20/30 - 92100 - AGRIGENTO - AG</IndirizzoSede><Importo>250.0000</Importo><DataUltimaRichiestaCedibilita>2019-01-15</DataUltimaRichiestaCedibilita><RichiedenteUltimaCedibilita>Istituto di Credito</RichiedenteUltimaCedibilita><DataScadenzaAOI>202002</DataScadenzaAOI><DataRilascio>2019-01-16</DataRilascio><Note></Note><ProtocolloINPS>INPS.TESTC1.16/01/2019.0000287</ProtocolloINPS><CodiceErrore>0</CodiceErrore><DescrizioneErrore></DescrizioneErrore></Cedibilita></DatiCedibilita>1 ?>
$id = $soap->id;
print("Id=" . $id);
$id = $soap['id'];
print("Id=" . $id);
如果您提供var\u dump($soap)
,我应该能够准确地向您展示您需要的代码
我希望这有帮助 所有这些行仅回显要输出的值
print_r($soapClient->__getlastResponse());
$soap = print_r($soapClient->__getlastResponse());
print_r($soap);
拆下上部管路并更换为下部管路。要设置$soap并获取值,请使用xml解析器,例如simplexml库
$soap = $soapClient->__getlastResponse();
$xml = simplexml_load_string($soap);
echo $xml->Cedibilita->Id; // 20190000277
您需要获取有关SOAP服务的函数和类型的信息
<?php
...
# SOAP Client
$soapClient = new SoapClient($wsdl, array('local_cert' => $local_cert, 'trace' => 1, 'soap_version' => SOAP_1_1));
# List functions
echo 'Functions: '.'</br>';
$functions = $soapClient->__getFunctions();
foreach($functions as $item) {
echo $item.'</br>';
}
echo '</br>';
# List types
echo 'Types: '.'</br>';
$types = $soapClient->__getTypes();
foreach($types as $item) {
echo $item.'</br>';
}
echo '</br>';
...
?>
嗨,我尝试了这个并为我工作:
<?php
$cf = "DTRMRA48P55D539C";
$chiave = "700400125745081";
$numdoc = "AV1871102";
$tipodoc = 1;
//$numid = $_POST['numid'];
$codoper = "PCCPLA66T11L719L";
$idag = "35852";
$wsdl = "https://portalws.inps.it/ws/wsCessioneQuintoWebTest/WsInpsCessioneQuinto.asmx?WSDL";
$local_cert = "C:\\Apache24\htdocs\sirio2.pem";
$soapClient = new SoapClient($wsdl, array('local_cert' => $local_cert, 'trace' => 1, 'soap_version' => SOAP_1_1));
$result = $soapClient->RichiestaCedibilita(array('CodFiscale' => $cf, 'ChiavePensione' => $chiave, 'NumDocumento' => $numdoc, 'TipoDocumento' => 1, 'CodiceOperatore' => $codoper, 'IdentificativoAgenzia' => $idag));
$xml = simplexml_load_string($result->RichiestaCedibilitaResult);
echo ($xml->Cedibilita->Id);
?>
RichiestaCedibilitaResult);
echo($xml->Cedibilita->Id);
?>
OP将print\r($soap)的结果放入问题这是我的var\u dump($soap):字符串(1473)“20190000282DTRMRA48P55D539C700400125745081DTRMRA1948-09-150100AGRIGENTO…@splash58是的,但是print\r
并不能很好地显示数组/对象的格式。@Serenella Angelilli啊,它以字符串形式返回整个响应,在这种情况下,您需要遵循splash58的想法,将该字符串格式化为XML对象,然后从中提取值。如何将其格式化为XML对象,然后访问数据?您好,感谢您的回答……我尝试了以下方法:$soap=$soapClient->u getlastResponse()$xml=simplexml\u load\u字符串($soap);echo$xml->Cedibilita->Id;//20190000277我的回答是:?>如何将字符串自动转换为xml?@Serenella Angelilli如果字符串是有效的xml,例如使用simplexml\u load\u string()
。但是,我认为您需要知道RichiestaCedibilita()
调用的类型,并根据该类型读取数据。在大多数情况下,这是一个数组。响应是一个字符串…不是有效的xml!我不知道如何解决这个问题problem@serenellaangelillixml是一个文本字符串,通过调用simplexml\u load将其转换为对象_string@splash58对我已经测试过了,如果我去掉第二部分,它就可以工作了。