ホームページ > バックエンド開発 > PHPチュートリアル > PHP を使用して SOAP XML 応答から「payment」要素を取得する方法

PHP を使用して SOAP XML 応答から「payment」要素を取得する方法

DDD
リリース: 2024-12-07 02:56:12
オリジナル
452 人が閲覧しました

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

SOAP XML の解析

問題: 'payment' 要素の取得

問題の概要:

PHP simplexml_load_string() が SOAP XML の解析に失敗する

解決策: 名前空間プレフィックスの削除

この問題に対処する効果的な方法の 1 つは、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);
}
ログイン後にコピー

これにより、「payment」要素が SimpleXMLElement オブジェクトとして出力され、アクセスが提供されます。その子要素に。

以上がPHP を使用して SOAP XML 応答から「payment」要素を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート