1
我想從XML文檔中獲取列表。我需要從兩個不同的部分創建兩個列表,然後匹配文檔中的Id值。 這裏是我的XML文件從XML中獲取重複的Id值
<?xml version="1.0" encoding="utf-8"?>
<Root>
<VehicleCollection>
<ModelInfo>
<Vehicle>
<Id>101</Id>
<Color>Red</Color>
<Year>1987</Year>
<Make>Saturn</Make>
<Manufacturer>General Motors</Manufacturer>
</Vehicle>
<Vehicle>
<Id>100</Id>
<Color>Blue</Color>
<Year>1998</Year>
<Make>Saturn</Make>
<Manufacturer>General Motors</Manufacturer>
</Vehicle>
</ModelInfo>
<PriceInfo>
<Vehicle>
<Id>101</Id>
<OriginalCost>11000</OriginalCost>
<MarketValue>1200</MarketValue>
</Vehicle>
<Vehicle>
<Id>100</Id>
<OriginalCost>11000</OriginalCost>
<MarketValue>3100</MarketValue>
</Vehicle>
</PriceInfo>
</VehicleCollection>
</Root>
我要做出一定的在PriceInfo部分項目數匹配在ModelInfo部分項目的數量。我正在使用下面的代碼來獲取列表。
private static void PrintVehicleInfo(string fileName)
{
if (fileName != null)
{
var xDoc = XDocument.Load(fileName);
var vehicle = xDoc.Descendants("Vehicle").ToList(); //Culprit
foreach (var v in vehicle)
{
Console.WriteLine(v.Element("Id"));
}
}
}
如何從XMl文檔創建兩個單獨的列表?我得到一個重複ID值的列表。如果我嘗試在代碼中包含節名稱,它會引發運行時異常。
var vehicle = xDoc.Descendants("ModelInfo/Vehicle").ToList();
OR
var vehicle = xDoc.Descendants("ModelInfo//Vehicle").ToList();