【问题标题】:How to convert Soap xml response return by the Amadeus Flight Search API to json如何将 Amadeus Flight Search API 返回的 Soap xml 响应转换为 json
【发布时间】:2020-04-08 18:50:07
【问题描述】:

我想将 SOAP XML 响应转换为 JSON 格式。有人可以帮忙吗!

我在 $response 中低于 SOAP XML

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:awsse="http://xml.amadeus.com/2010/06/Session_v3" xmlns:wsa="http://www.w3.org/2005/08/addressing">
<soapenv:Header>
    <wsa:To>http://www.w3.org/2005/08/addressing/anonymous</wsa:To>
    <wsa:From>
        <wsa:Address>https://nodeD2.test.webservices.amadeus.com/XXXXXXXX</wsa:Address>
    </wsa:From>
    <wsa:Action>http://webservices.amadeus.com/FMPTBQ_18_1_1A
    </wsa:Action>
    <wsa:MessageID>urn:uuid:a4844bc6-2e05-e8e4-b589-6f813ecad262</wsa:MessageID>
    <wsa:RelatesTo RelationshipType="http://www.w3.org/2005/08/addressing/reply">urn:uuid:ac1c8436-ecaf-4bbb-a9ff-11b466dffe18</wsa:RelatesTo>
    <awsse:Session TransactionStatusCode="End"><awsse:SessionId>00896YTRZQPQ</awsse:SessionId><awsse:SequenceNumber>1</awsse:SequenceNumber><awsse:SecurityToken>TRFTGYNBHUYKIOL</awsse:SecurityToken></awsse:Session>
</soapenv:Header>
<soapenv:Body>
    <Fare_MasterPricerTravelBoardSearchReply xmlns="http://xml.amadeus.com/FMPTBR_18_1_1A">
        <replyStatus><status><advisoryTypeInfo>FQX</advisoryTypeInfo></status></replyStatus>
        <conversionRate><conversionRateDetail><currency>USD</currency></conversionRateDetail></conversionRate>
        <familyInformation><refNumber>1</refNumber><fareFamilyname>BAGSEAT</fareFamilyname><description>OPTIMA</description><carrier>IB</carrier><services><reference>1</reference><status>CHA</status></services><services><reference>2</reference><status>CHA</status></services><services><reference>3</reference><status>INC</status></services><services><reference>4</reference><status>NOF</status></services><services><reference>5</reference><status>NOF</status></services><services><reference>6</reference><status>NOF</status></services><services><reference>7</reference><status>NOF</status></services></familyInformation>
    </Fare_MasterPricerTravelBoardSearchReply>
</soapenv:Body>
</soapenv:Envelope>

我试过了。

$xml = json_decode(json_encode(simplexml_load_string($response)), true);
print '<pre>';
print_r($xml);
print '</pre>';

【问题讨论】:

  • 这能回答你的问题吗? PHP convert XML to JSON
  • 耻辱,请先在问题中搜索您是否可以从中得到答案。否则可能是重复的问题,您的声誉可能会降低
  • 这能回答你的问题吗? How do you parse and process HTML/XML in PHP?
  • 我尝试了所有解决方案,但没有任何效果
  • @SameerAnsari 究竟是什么不起作用?你能提供你得到的错误或实际结果与预期的比较吗?更具体地说,我们无法访问您的环境和想法。

标签: php json xml soap amadeus


【解决方案1】:

我得到了问题的解决方案,工作正常

$response  = preg_replace("/(<\/?)(\w+):([^>]*>)/", "$1$2$3", $response);
$response  = simplexml_load_string($response);
$dataArray = json_decode(json_encode((array)$response), TRUE);

echo '<pre>';print_r($dataArray);echo '</pre>';die(__FILE__.' On this line '.__LINE__);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-05
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 2023-01-13
    相关资源
    最近更新 更多