[英]Linq query - reading nested XML to dictionary
我正在嘗試解析嵌套的XML文件
結構(簡化)如下:
<CARS_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2014-09-03T12:12:55Z</DATETIME>
<CARS_LIST>
<CAR>
<CID>12123</CID>
<PARTS_LIST>
<PART>
<ID>QWEDS23</ID>
</PART>
<PART>
<ID>QWEDS26</ID>
</PART>
</PARTS_LIST>
</CAR>
<CAR>
<CID>44123</CID>
<PARTS_LIST>
<PART>
<ID>QWED101</ID>
</PART>
<PART>
<ID>QAADS23</ID>
</PART>
</PARTS_LIST>
</CAR>
</CARS_LIST>
</RESPONSE>
<CAR_LIST_OUTPUT>
我需要制作所有零件ID及其對應的汽車ID(CID)的字典,即
QWEDS23、12123 QWEDS26、12123 QWED101、44123 QAADS23、44123
到目前為止,我到了這一點:
var nodes =
from c in carDirectory.Descendants("CAR")
select new
{
parts = c.Descendants("PART")
.Select(part => new {
ID = part.Element("ID").Value,
c.Element("CID").Value
}).ToDictionary(r => r.ID)
};
但這會產生字典列表。 是否有可能實現我所需要的? 如果是,我該如何改善解決方案? 謝謝你的想法!
這樣的事情應該可以解決問題:
carDirectory.Descendants("CAR")
.SelectMany(x => x.Descendants("ID")
.Select(e => new KeyValuePair<string, string>(
(string) e,
(string) x.Element("CID"))))
.ToDictionary(x => x.Key, x => x.Value);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.