public static void Convert(string path) { logger.Information($"Converting file {path.Replace(Directory.GetCurrentDirectory(), "")}"); var xbn = XBN.Load(path); var xml = new XDocument(new XElement(xbn.RootElement.Name)); foreach (var e in xbn.RootElement.Elements) { var element = new XElement(e.Name); foreach (var e2 in e.Properties) { element.SetAttributeValue(e2.Key, e2.Value); } foreach (var e3 in e.Childs) { var e4 = new XElement(e3.Name); foreach (var e5 in e3.Properties) { e4.SetAttributeValue(e5.Key, e5.Value); } element.Add(e4); } xml.Root.Add(element); } foreach (var c in xbn.RootElement.Childs) { var element = new XElement(c.Name); foreach (var c2 in c.Properties) { element.SetAttributeValue(c2.Key, c2.Value); } foreach (var c3 in c.Elements) { var c4 = new XElement(c3.Name); foreach (var c5 in c3.Properties) { c4.SetAttributeValue(c5.Key, c5.Value); } foreach (var c6 in c3.Childs) { var c7 = new XElement(c6.Name); foreach (var c8 in c6.Properties) { c7.SetAttributeValue(c8.Key, c8.Value); } c4.Add(c7); } element.Add(c4); } xml.Root.Add(element); } xml.Save(path.Replace(".xbn", ".xml")); }
public static void Convert(string path) { logger.Information($"Converting file {path.Replace(Directory.GetCurrentDirectory(), "")}"); var xml = XDocument.Load(path); var xbn = new XBN(); foreach (var e in xml.Elements()) { if (!xbn.Header.Tags.Contains(e.Name.LocalName)) { xbn.Header.Tags.Add(e.Name.LocalName); } xbn.RootElement.Name = e.Name.LocalName; } foreach (var e2 in xml.Root.Elements()) { if (!xbn.Header.Tags.Contains(e2.Name.LocalName)) { xbn.Header.Tags.Add(e2.Name.LocalName); } var xbnElement = new XBN_Element(xbn.Header); xbnElement.Name = e2.Name.LocalName; foreach (var a in e2.Attributes()) { xbnElement.Properties.Add(new XBN_Property(xbn.Header, a.Name.LocalName, a.Value)); if (!xbn.Header.Properties.Contains(a.Name.LocalName)) { xbn.Header.Properties.Add(a.Name.LocalName); } } foreach (var e3 in e2.Elements()) { var child = new XBN_Element(xbn.Header); child.Name = e3.Name.LocalName; foreach (var a2 in e3.Attributes()) { child.Properties.Add(new XBN_Property(xbn.Header, a2.Name.LocalName, a2.Value)); if (!xbn.Header.Properties.Contains(a2.Name.LocalName)) { xbn.Header.Properties.Add(a2.Name.LocalName); } } if (!xbn.Header.Tags.Contains(e3.Name.LocalName)) { xbn.Header.Tags.Add(e3.Name.LocalName); } xbnElement.Childs.Add(child); } xbn.RootElement.Elements.Add(xbnElement); } xbn.Save(path.Replace(".xml", ".xbn")); }