我正在尝试从 XML 文档中获取列表。我需要从两个不同的部分创建两个列表,然后匹配文档中的 Id 值。这是我的 XML 文件
<?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();