CSMSL.Chemistry.PeriodicTable.SaveTo C# (CSharp) Method

SaveTo() public static method

public static SaveTo ( string filePath ) : void
filePath string
return void
        public static void SaveTo(string filePath)
        {
            using (XmlWriter writer = XmlWriter.Create(filePath, new XmlWriterSettings {Indent = true}))
            {
                writer.WriteStartDocument();
                writer.WriteStartElement("PeriodicTable");
                foreach (var element in _elements.Values.Where(element => element.Isotopes.Count > 0).GroupBy(element => element.Name).Select(g => g.First()))
                {
                    writer.WriteStartElement("Element");
                    writer.WriteAttributeString("Name", element.Name);
                    writer.WriteAttributeString("Symbol", element.AtomicSymbol);
                    writer.WriteAttributeString("AtomicNumber", element.AtomicNumber.ToString("N", CultureInfo.CurrentCulture));
                    writer.WriteAttributeString("AverageMass", element.AverageMass.ToString("R", CultureInfo.CurrentCulture));
                    writer.WriteAttributeString("ValenceElectrons", element.ValenceElectrons.ToString("N", CultureInfo.CurrentCulture));
                    foreach (var isotope in element.Isotopes.Values)
                    {
                        writer.WriteStartElement("Isotope");
                        writer.WriteAttributeString("Id", isotope.UniqueId.ToString("N", CultureInfo.CurrentCulture));
                        writer.WriteAttributeString("Mass", isotope.AtomicMass.ToString("R", CultureInfo.CurrentCulture));
                        writer.WriteAttributeString("MassNumber", isotope.MassNumber.ToString("N", CultureInfo.CurrentCulture));
                        writer.WriteAttributeString("Abundance", isotope.RelativeAbundance.ToString("R", CultureInfo.CurrentCulture));
                        writer.WriteEndElement(); // Isotope
                    }
                    writer.WriteEndElement(); // Element
                }
                writer.WriteEndElement(); // PeriodicTable
            }
        }