У меня есть файл XML с содержимым примера следующим образом:
ФАЙЛ XML
<?xml version="1.0" encoding="utf-8"?>
<Response>
<ResId>20191030101856000_03937</ResId>
<Result>
<MapHistory>
<MapEntry BIBID="0330004004003"
MapID="0330004004003__22906V6G01__20191028101446000_03634__000"
EventID="0330004004003__22906V6G01__20191028101446000_03634" ProgressiveID="0" >
<ResId>20191028101446000_03634</ResId>
<Method>GET</Method>
<BIBStatus>0</BIBStatus>
<Lotnumber>22906V6G01</Lotnumber>
<MapType>bibloading</MapType>
<EquipmentType>BLU36</EquipmentType>
<EquipmentName>MB10SM_ATPS</EquipmentName>
<InsertionTimestamp>2019-10-28 10:14:46</InsertionTimestamp>
<IdRun></IdRun>
<EndCause></EndCause>
</MapEntry>
<MapEntry BIBID="0330004004003"
MapID="0330004004003__22906V6G01__20191028101446000_03634__001"
EventID="0330004004003__22906V6G01__20191028101446000_03634" ProgressiveID="1" >
<ResId>20191028101536000_03636</ResId>
<Method>POST</Method>
<BIBStatus>2</BIBStatus>
<Lotnumber>22906V6G01</Lotnumber>
<MapType>bibloaded</MapType>
<EquipmentType>BLU36</EquipmentType>
<EquipmentName>MB10SM_ATPS</EquipmentName>
<InsertionTimestamp>2019-10-28 10:15:36</InsertionTimestamp>
<IdRun></IdRun>
<EndCause>1</EndCause>
</MapEntry>
</MapHistory>
</Result>
</Response>
Я просмотрел множество примеров, но ни один из них не выглядит вполневерно, и, похоже, существуют десятки различных методов, некоторые из которых используют XmlReader, некоторые XmlTextReader, а некоторые не используют ни того, ни другого. Поскольку я впервые читаю XML-файл, я подумал, что могу спросить, может ли кто-нибудь дать мне указатель. Мне нужно прочитать все элементы в MapEntry, но я застрял на этом.
CODE
XElement xml = XElement.Load(xmlFile);
var nodes = (from n in xml.Descendants("MapEntry").
Where(r => r.Parent.Attribute("ProgressiveID").Value == "0")
select new
{
ResID = (string)n.Element("ResId").Value,
Method = (string)n.Element("Method").Value,
BIBStatus = (string)n.Element("BIBStatus").Value,
LotNumber = (string)n.Element("Lotnumber").Value,
MapType = (string)n.Element("MapType").Value,
EquipmentType = (string)n.Element("EquipmentType").Value,
EquipmentName = (string)n.Element("EquipmentName").Value,
InsertionTimeStamp = (string)n.Element("InsertionTimestamp").Value
}).ToList();
foreach (var n in nodes)
{
//write to table
}