ホームページ > バックエンド開発 > PHPチュートリアル > SOAP XML 応答から「payment」要素を効率的に抽出するにはどうすればよいですか?

SOAP XML 応答から「payment」要素を効率的に抽出するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-06 10:43:16
オリジナル
872 人が閲覧しました

How Can I Efficiently Extract the 'payment' Element from a SOAP XML Response?

SOAP XML の解析: 総合ガイド

SOAP XML から 'payment' 要素を取得することは、特に名前空間プレフィックスの場合、困難な作業になる可能性があります。が関与している。この記事では、この問題の解決策を提供し、SOAP XML を効果的に解析するプロセスを説明します。

SOAP XML 名前空間

XML の名前空間は、区別するために使用されます。さまざまな XML 語彙の要素。提供された SOAP XML では、「payment」要素は次の名前空間に属しています:

xmlns="http://apilistener.envoyservices.com"
ログイン後にコピー

XPath 式が解析できないため、この名前空間プレフィックス ('xmlns') が問題の原因となっています。要素を正しい名前空間と一致させます。

名前空間の削除Prefix

簡単な解決策の 1 つは、simplexml で解析する前に、XML 応答から名前空間プレフィックスを削除することです。これは、単純な文字列置換を使用して実現できます。

$your_xml_response = '<Your XML here>';
$clean_xml = str_ireplace(['SOAP-ENV:', 'SOAP:'], '', $your_xml_response);
$xml = simplexml_load_string($clean_xml);
ログイン後にコピー

これにより、XML から名前空間プレフィックスが効果的に削除され、simplexml が応答を正しく解析できるようになります。

XPath Expression for 'payment'

名前空間プレフィックスが削除されたので、単純な「payment」要素を抽出するための XPath 式:

$item = $xml->PaymentNotification->payment;
ログイン後にコピー

これにより、「payment」要素が $item 変数に割り当てられ、次のように子要素にアクセスできるようになります:

echo $item->uniqueReference; // ESDEUR11039872
ログイン後にコピー

結論

名前空間の概念を理解していれば、SOAP XML の解析は簡単になります。そして適切な解析手法を使用してください。名前空間プレフィックスを削除し、正しい XPath 式を使用すると、SOAP 応答から目的の 'payment' 要素を簡単に抽出できます。

以上がSOAP XML 応答から「payment」要素を効率的に抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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