こんにちは、私はこの xml を持っています。Plan のリストと PlanTerms のリストを取得したいと考えています。
Plan
{
name = "Premium"
List<Terms>{
24 months/24000 miles
36 months/36000 miles
}
}
XML:
<plan>
<planid>1</planid>
<plantitle>Premium</plantitle>
<plandesc>12 months / 12,000 miles</plandesc>
<planwarranty>NA</planwarranty>
<plancoveredterm>12</plancoveredterm>
</plan>
<plan>
<planid>2</planid>
<plantitle>Premium</plantitle>
<plandesc>24 months / 24,000 miles</plandesc>
<planwarranty>NA</planwarranty>
<plancoveredterm>24</plancoveredterm>
</plan>
<plan>
<planid>3</planid>
<plantitle>Premium</plantitle>
<plandesc>36 months / 36,000 miles</plandesc>
<planwarranty>NA</planwarranty>
<plancoveredterm>36</plancoveredterm>
</plan>
次のコードブロックを使用しています
XDocument xdoc = XDocument.Parse(providerResponse);
XElement root = xdoc.Root;
var quotePlan = (from planInfo in root.Descendants("plan")
select new QuotePlanMbp
{
Name = planInfo.Element("plantitle").Value.ToString(),
QuoteTerms = (from planTerm in root.Descendants("plan")
select new QuoteTermMbp
{
TermMonths = planTerm.Element("plancoveredterm").Value != null ? Convert.ToInt32(planTerm.Element("plancoveredterm").Value) : 0,
TermMiles = planTerm.Element("plancoveredmiles").Value != null ? Convert.ToInt32(planTerm.Element("plancoveredmiles").Value) : 0,
TermCost = planTerm.Element("plancost").Value != null ? Convert.ToDecimal(planTerm.Element("plancost").Value) : 0
}).ToList<QuoteTerm>()
}).GroupBy(plan => plan.Name);
これにより、最上位のプラン レコードが 3 つ得られますが、必要なプラン レコードは 1 つだけです (名前は常に「プレミアム」であるため)。この問題を解決するための微調整を提案してください。