已经被困了很长一段时间,请任何人帮助我发送的OB费用(航空公司费用)和金额与Fare_PricePnrWithBookingClass的要求。下面是XML请求:
<Fare_PricePNRWithBookingClass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xml.amadeus.com/TPCBRQ_16_1_1A">
<pricingOptionGroup xmlns="http://xml.amadeus.com/TPCBRQ_16_1_1A">
<pricingOptionKey><pricingOptionKey>RW</pricingOptionKey>
</pricingOptionKey>
<optionDetail>
<criteriaDetails><attributeType>GOVSR123</attributeType>
</criteriaDetails>
</optionDetail></pricingOptionGroup><pricingOptionGroup xmlns="http://xml.amadeus.com/TPCBRQ_16_1_1A">
<pricingOptionKey>
<pricingOptionKey>FCO</pricingOptionKey>
</pricingOptionKey>
<currency>
<firstCurrencyDetails><currencyQualifier>FCO</currencyQualifier>
<currencyIsoCode>SAR</currencyIsoCode>
</firstCurrencyDetails>
</currency>
</pricingOptionGroup>
</Fare_PricePNRWithBookingClass>非常感谢
发布于 2020-12-06 20:20:04
使用xml linq:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
namespace ConsoleApplication1
{
class Program
{
const string FILENAME = @"c:\temp\test.xml";
static void Main(string[] args)
{
XDocument doc = XDocument.Load(FILENAME);
List<XElement> pricingOptionGroups = doc.Descendants().Where(x => x.Name.LocalName == "pricingOptionGroup").ToList();
XNamespace ns = pricingOptionGroups.First().GetDefaultNamespace();
List<PricingOptionGroup> groups = pricingOptionGroups.Select(x => new PricingOptionGroup()
{
key = (string)x.Descendants(ns + "pricingOptionKey").FirstOrDefault(),
attributeType = (string)x.Descendants(ns + "attributeType").FirstOrDefault(),
currencyQualifier = (string)x.Descendants(ns + "currencyQualifier").FirstOrDefault(),
currencyIsoCode = (string)x.Descendants(ns + "currencyIsoCode").FirstOrDefault()
}).ToList();
}
}
public class PricingOptionGroup
{
public string key { get; set; }
public string attributeType { get; set; }
public string currencyQualifier { get; set; }
public string currencyIsoCode { get; set; }
}
}发布于 2020-12-08 20:35:19
您可以尝试使用<pricingOptionKey>OBF</pricingOptionKey>来包含或排除您的OB费用。
若要使用50美元的额外OB费用子码OT1来更新TST 1,您可以尝试如下操作:
<ns1:pricingOptionGroup>
<ns1:pricingOptionKey>
<ns1:pricingOptionKey>OBF</ns1:pricingOptionKey>
</ns1:pricingOptionKey>
<ns1:penDisInformation>
<ns1:discountPenaltyQualifier>OBF</ns1:discountPenaltyQualifier>
<ns1:discountPenaltyDetails>
<ns1:function>INF</ns1:function>
<ns1:amountType>707</ns1:amountType>
<ns1:amount>50</ns1:amount>
<ns1:rate>OT1</ns1:rate>
<ns1:currency>USD</ns1:currency>
</ns1:discountPenaltyDetails>
</ns1:penDisInformation>
<ns1:paxSegTstReference>
<ns1:referenceDetails>
<ns1:type>P</ns1:type>
<ns1:value>1</ns1:value>
</ns1:referenceDetails>
</ns1:paxSegTstReference>
</ns1:pricingOptionGroup>其中INF代表inclusion,707代表使用fixed amount,paxSegTstReference代表引用TST记录。
希望能有所帮助。
https://stackoverflow.com/questions/65165106
复制相似问题