public XmlNode CreateXmlNode(XmlDocument doc, string nodeName) { if (value == null) { throw new NullReferenceException(); } XmlNode result = doc.CreateElement(nodeName); XmlElement element = doc.CreateElement("StateSet"); foreach (var state in value.StateSet) { StateXmlWorker worker = new StateXmlWorker(state); element.AppendChild(worker.CreateXmlNode(doc)); } result.AppendChild(element); element = doc.CreateElement("InputSet"); foreach (var input in value.InputSet) { StructAtomStringXmlWorker worker = new StructAtomStringXmlWorker(input); element.AppendChild(worker.CreateXmlNode(doc, "Input")); } result.AppendChild(element); element = doc.CreateElement("OutputSet"); foreach (var output in value.OutputSet) { StructAtomStringXmlWorker worker = new StructAtomStringXmlWorker(output); element.AppendChild(worker.CreateXmlNode(doc, "Output")); } result.AppendChild(element); element = doc.CreateElement("KeyName"); element.InnerText = value.KeyName; result.AppendChild(element); StateXmlWorker w = new StateXmlWorker(value.InitialState); result.AppendChild(w.CreateXmlNode(doc, "InitialState")); element = doc.CreateElement("Transitions"); foreach (var transition in value.Transitions.Values) { TransitionXmlWorker worker = new TransitionXmlWorker(transition); element.AppendChild(worker.CreateXmlNode(doc)); } result.AppendChild(element); return(result); }
public static bool SaveInputSeqToFile(IEnumerable <StructAtom <string> > inputs) { bool result = false; try { var sfd = new SaveFileDialog(); sfd.Filter = "xml-файл (*.xml)|*.xml"; if (sfd.ShowDialog() == DialogResult.OK) { var fi = new FileInfo(sfd.FileName); if (fi.Extension == ".xml") { XmlDocument doc = new XmlDocument(); XmlNode rootNode = doc.CreateElement("InputSequence"); foreach (var input in inputs) { StructAtomStringXmlWorker w = new StructAtomStringXmlWorker(input); rootNode.AppendChild(w.CreateXmlNode(doc)); } doc.AppendChild(rootNode); doc.Save(fi.FullName); result = true; } else { MessageBox.Show("Файл должен иметь расширение .xml", "Сохранение входной последовательности", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } catch (Exception exc) { result = false; } return(result); }