从 php CURL 读取 SOAP XML
Read SOAP XML from php CURL
嗨,我有这个 xml 从肥皂 service.I 获得 xml 与卷曲。
如何访问 php 中的节点?结果可以有更多的结果集
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns3:ExampleResponse xmlns:ns3="http://example.com/ptfall" xmlns:ns2="http://example.com/soa">
<return>
<ns3:resultSet>
<ns3:categoria>
<ns2:codice>1</ns2:codice>
<ns2:descrizione>Esempio xxx</ns2:descrizione>
</ns3:categoria>
<ns3:causale>
<ns3:codice>_XXXXX</ns3:codice>
<ns3:descrizione>Annullo Mancato</ns3:descrizione>
<ns3:identificativo>
<ns2:long>74</ns2:long>
</ns3:identificativo>
</ns3:causale>
</ns3:resultSet>
<ns3:serviceInfo>
<ns2:codiceErroreOccorso>0</ns2:codiceErroreOccorso>
<ns2:erroreOccorso>false</ns2:erroreOccorso>
<ns2:executionId>xxxxxxxxxxx</ns2:executionId>
<ns2:tipoErroreOccorso>0</ns2:tipoErroreOccorso>
</ns3:serviceInfo>
</return>
</ns3:ExampleResponse>
</soap:Body>
</soap:Envelope>
例如,我想 return 每个结果集的 ns3:descrizione 节点
我尝试使用这个但没有用
$soap = simplexml_load_string($data);
$response = $soap->children('http://schemas.xmlsoap.org/soap/envelope/')->Body->children()->ExampleResponse->........DUNNO HOW TO DO IT;
echo $response;
它比那要复杂一点,但是 - 对于你的例子 ns3:descrizione
- 它可以这样完成:
$soap = simplexml_load_string($data);
$soap->registerXPathNamespace("ns3", "http://example.com/ptfall");
$resultSet = $soap->xpath('//ns3:resultSet');
foreach ($resultSet as $rs)
{
$infos = $rs->xpath('.//*[local-name()="descrizione"]/text()');
foreach ($infos as $target) {
echo $target ."\r\n";
}
}
输出:
Esempio xxx
Annullo Mancato
嗨,我有这个 xml 从肥皂 service.I 获得 xml 与卷曲。 如何访问 php 中的节点?结果可以有更多的结果集
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns3:ExampleResponse xmlns:ns3="http://example.com/ptfall" xmlns:ns2="http://example.com/soa">
<return>
<ns3:resultSet>
<ns3:categoria>
<ns2:codice>1</ns2:codice>
<ns2:descrizione>Esempio xxx</ns2:descrizione>
</ns3:categoria>
<ns3:causale>
<ns3:codice>_XXXXX</ns3:codice>
<ns3:descrizione>Annullo Mancato</ns3:descrizione>
<ns3:identificativo>
<ns2:long>74</ns2:long>
</ns3:identificativo>
</ns3:causale>
</ns3:resultSet>
<ns3:serviceInfo>
<ns2:codiceErroreOccorso>0</ns2:codiceErroreOccorso>
<ns2:erroreOccorso>false</ns2:erroreOccorso>
<ns2:executionId>xxxxxxxxxxx</ns2:executionId>
<ns2:tipoErroreOccorso>0</ns2:tipoErroreOccorso>
</ns3:serviceInfo>
</return>
</ns3:ExampleResponse>
</soap:Body>
</soap:Envelope>
例如,我想 return 每个结果集的 ns3:descrizione 节点 我尝试使用这个但没有用
$soap = simplexml_load_string($data);
$response = $soap->children('http://schemas.xmlsoap.org/soap/envelope/')->Body->children()->ExampleResponse->........DUNNO HOW TO DO IT;
echo $response;
它比那要复杂一点,但是 - 对于你的例子 ns3:descrizione
- 它可以这样完成:
$soap = simplexml_load_string($data);
$soap->registerXPathNamespace("ns3", "http://example.com/ptfall");
$resultSet = $soap->xpath('//ns3:resultSet');
foreach ($resultSet as $rs)
{
$infos = $rs->xpath('.//*[local-name()="descrizione"]/text()');
foreach ($infos as $target) {
echo $target ."\r\n";
}
}
输出:
Esempio xxx
Annullo Mancato