解析 SOAP XML:综合指南
从 SOAP XML 获取“ payment”元素可能是一项具有挑战性的任务,特别是当命名空间前缀时都参与其中。本文将提供这个问题的解决方案,并指导您完成有效解析 SOAP XML 的过程。
SOAP XML 命名空间
XML 中的命名空间用于区分来自不同 XML 词汇表的元素。在提供的 SOAP XML 中,“ payment” 元素属于以下命名空间:
xmlns="http://apilistener.envoyservices.com"
此命名空间前缀 ('xmlns') 导致您的解析尝试出现问题,因为 XPath 表达式无法将元素与正确的命名空间相匹配。
剥离命名空间前缀
一种简单的解决方案是在使用 simplexml 解析 XML 响应之前从 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 表达式'Payment'
现在命名空间前缀已被删除,您可以使用简单的 XPath 表达式来提取 'Payment'元素:
$item = $xml->PaymentNotification->payment;
这会将“付款”元素分配给 $item 变量,允许您按如下方式访问其子元素:
echo $item->uniqueReference; // ESDEUR11039872
结论
如果您了解命名空间的概念并使用适当的解析技术,解析 SOAP XML 会很简单。通过删除命名空间前缀并使用正确的 XPath 表达式,您可以轻松地从 SOAP 响应中提取所需的“付款”元素。
以上是如何从 SOAP XML 响应中有效地提取' payment ”元素?的详细内容。更多信息请关注PHP中文网其他相关文章!