using System.Collections.Generic;
using Newtonsoft.Json.Serialization;
public static void Main()
var xmls = "<?xml version=\"1.0\"?>\n<Event xmlns=\"http://schemas.microsoft.com/win/2004/08/events/event\">\n <System>\n <Provider Name=\"LMS\" />\n <EventID Qualifiers=\"32768\">2125</EventID>\n <Level>4</Level>\n <Task>3</Task>\n <Keywords>0x80000000000000</Keywords>\n <TimeCreated SystemTime=\"2021-05-30T14:05:07.077547800Z\" />\n <EventRecordID>89958</EventRecordID>\n <Channel>Application</Channel>\n <Computer></Computer>\n <Security/>\n </System>\n <EventData>\n <Data> </Data>\n </EventData>\n</Event>\n";
XDocument doc = XDocument.Parse(xmls);
Dictionary<string, string > dataDictionary = new Dictionary <string, string >();
foreach(XElement element in doc.Descendants().Where(p => p.HasElements ==false))
string keyName = element.Name.LocalName;
while (dataDictionary.ContainsKey(keyName))
keyName = element.Name.LocalName + "_" + keyInt++;
dataDictionary.Add(keyName, element.Value);
if (element.HasAttributes)
var lmsAttribute = element.FirstAttribute;
if (lmsAttribute != null)
dataDictionary.Add($"{keyName}_{lmsAttribute.Name.LocalName}", lmsAttribute.Value);
Console.WriteLine(JsonConvert.SerializeObject(dataDictionary, new JsonSerializerSettings { Formatting = Formatting.Indented }));