using System.Collections.Generic;
using System.Xml.Serialization;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO.Compression;
public static class XNodeExtensions
static readonly XNamespace xsi = @"http://www.w3.org/2001/XMLSchema-instance";
static readonly XName xsiNil = xsi + "nil";
public static bool IsNull(this XElement? element) => element == null || element.Attribute(xsiNil)?.Value == "true";
namespace XMLFileUploader
public static class ExtractLogFile
public static void ExtractData(string filePath)
XElement root = XElement.Load(filePath);
IEnumerable<XElement> tests =
from el in root.Elements("measList")
IEnumerable<XElement> measList =
from el2 in tests.Elements("Measurement")
foreach (XElement el2 in measList)
Measurement mes = new Measurement();
if (el2.NodeType == XmlNodeType.Element && el2.Name == "Measurement")
mes.MeasurementInfoGuid = (String)el2.Element("MeasurementGuid");
mes.SequenceNumber = (int)el2.Element("SequenceNumber");
mes.Time = (DateTime)el2.Element("Time");
var sensorBlobVersionElement = el2.Element("SensorBlobVersion");
if (sensorBlobVersionElement == null)
mes.SensorBlobVersion = 0;
else if (sensorBlobVersionElement.IsNull())
mes.SensorBlobVersion = null;
mes.SensorBlobVersion = (int?)(sensorBlobVersionElement);
public String MeasurementInfoGuid { get; set; }
public int SequenceNumber { get; set; }
public DateTime Time { get; set; }
public int? SensorBlobVersion { get; set; }
public static void Test()
string fileName = "Question73407255.xml";
File.WriteAllText(fileName, GetXml());
XMLFileUploader.ExtractLogFile.ExtractData(fileName);
static string GetXml() => @"<XMLList xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"">
<MeasurementGuid>17ae41e0-e9ec-4570-83c1-75fbfc96db17</MeasurementGuid>
<SequenceNumber>953</SequenceNumber>
<Time>2020-10-07T15:39:06</Time>
<SensorBlobVersion xsi:nil=""true"" />
<MeasurementGuid>27ae41e0-e9ec-4570-83c1-75fbfc96db17</MeasurementGuid>
<SequenceNumber>953</SequenceNumber>
<Time>2020-10-07T15:39:06</Time>
<MeasurementGuid>3243234-e9ec-2324-83c1-43fbfc96db17</MeasurementGuid>
<SequenceNumber>111</SequenceNumber>
<Time>2022-11-07T15:39:06</Time>
<SensorBlobVersion>101</SensorBlobVersion>
public static void Main()
Console.WriteLine("Environment version: {0} ({1}, {2})", System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription , Environment.Version, Environment.OSVersion);
Console.WriteLine("Failed with unhandled exception: ");