ホームページ > バックエンド開発 > PHPチュートリアル > simpleXML を使用して PHP で名前空間を含む SOAP XML 応答を正しく解析する方法

simpleXML を使用して PHP で名前空間を含む SOAP XML 応答を正しく解析する方法

Linda Hamilton
リリース: 2024-12-05 05:08:10
オリジナル
771 人が閲覧しました

How to Correctly Parse SOAP XML Responses with Namespaces in PHP Using simpleXML?

SOAP XML の解析

名前空間を使用した XML の解析は、特に simpleXML を使用する場合に混乱を引き起こす可能性があります。

問題ステートメント

与えられたSOAP XML 応答には、SOAP 要素の名前空間プレフィックスが含まれています。 XML を解析するために PHP のコード スニペットが提供されていますが、空の結果が返されます。

正しい解析アプローチ

1 つの簡単な解決策は、XML から名前空間プレフィックスを削除することです。 simpleXML に渡す前のレスポンス:

$clean_xml = str_ireplace(['SOAP-ENV:', 'SOAP:'], '', $soap_response);
$xml = simplexml_load_string($clean_xml);
ログイン後にコピー

結果

このコードを使用すると、次の結果が得られます:

SimpleXMLElement Object
(
    [Body] => SimpleXMLElement Object
        (
            [PaymentNotification] => SimpleXMLElement Object
                (
                    [payment] => SimpleXMLElement Object
                        (
                            [uniqueReference] => ESDEUR11039872
                            [epacsReference] => 74348dc0-cbf0-df11-b725-001ec9e61285
                            [postingDate] => 2010-11-15T15:19:45
                            [bankCurrency] => EUR
                            [bankAmount] => 1.00
                            [appliedCurrency] => EUR
                            [appliedAmount] => 1.00
                            [countryCode] => ES
                            [bankInformation] => Sean Wood
                            [merchantReference] => ESDEUR11039872
                        )

                )

        )

)
ログイン後にコピー

これにより、期待どおりに支払い要素とその子要素にアクセスできるようになります。

以上がsimpleXML を使用して PHP で名前空間を含む SOAP XML 応答を正しく解析する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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