> 백엔드 개발 > PHP 튜토리얼 > PHP를 사용하여 SOAP XML 응답에서 \'결제\' 요소를 검색하는 방법은 무엇입니까?

PHP를 사용하여 SOAP XML 응답에서 \'결제\' 요소를 검색하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-12-07 02:56:12
원래의
452명이 탐색했습니다.

How to Retrieve the 'payment' Element from a SOAP XML Response Using PHP?

SOAP XML 구문 분석

문제: '결제' 요소 검색

문제 개요:

PHP simplexml_load_string()이 SOAP XML 응답을 구문 분석하지 못하고 '결제' 요소를 검색합니다.

해결책: 네임스페이스 접두사 제거

이 문제를 해결하는 효과적인 방법 중 하나는 simplexml_load_string()을 사용하기 전에 XML 응답에서 네임스페이스 접두사를 제거하는 것입니다. 수행 방법은 다음과 같습니다.

$your_xml_response = '<SOAP XML here>';
$clean_xml = str_ireplace(['SOAP-ENV:', 'SOAP:'], '', $your_xml_response);
$xml = simplexml_load_string($clean_xml);
로그인 후 복사

예: SOAP 응답 구문 분석

제공된 SOAP XML 응답의 경우:

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <PaymentNotification xmlns="http://apilistener.envoyservices.com">
      <payment>
        <uniqueReference>ESDEUR11039872</uniqueReference>
        <epacsReference>74348dc0-cbf0-df11-b725-001ec9e61285</epacsReference>
        <postingDate>2010-11-15T15:19:45</postingDate>
        <bankCurrency>EUR</bankCurrency>
        <bankAmount>1.00</bankAmount>
        <appliedCurrency>EUR</appliedCurrency>
        <appliedAmount>1.00</appliedAmount>
        <countryCode>ES</countryCode>
        <bankInformation>Sean Wood</bankInformation>
        <merchantReference>ESDEUR11039872</merchantReference>
      </payment>
    </PaymentNotification>
  </soap:Body>
</soap:Envelope>
로그인 후 복사

코드 실행:

$your_xml_response = '<!-- Your SOAP XML -->';
$clean_xml = str_ireplace(['SOAP-ENV:', 'SOAP:'], '', $your_xml_response);
$xml = simplexml_load_string($clean_xml);

foreach ($xml->Body->PaymentNotification->payment as $item) {
    print_r($item);
}
로그인 후 복사

'결제' 요소가 SimpleXMLElement 객체로 출력됩니다. 하위 요소에 대한 액세스를 제공합니다.

위 내용은 PHP를 사용하여 SOAP XML 응답에서 \'결제\' 요소를 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿