public static FtpCommandTable LoadFromXml(string InXmlString) { FtpCommandTable cmdTable = new FtpCommandTable(); XmlStream xmlStream = new XmlStream(InXmlString); XmlElem cmdsElem = xmlStream.GetDocumentElem("FtpCommands"); // for each FtpCommand of the FtpCommands elem. foreach (XmlElem cmdElem in cmdsElem) { if (cmdElem.ElemName != "FtpCommand") { continue; } // new up the item to add to the table. FtpCommandItem cmdItem = new FtpCommandItem(); // command name. XmlElem nameElem = cmdElem.FindChildElem("Name"); if (nameElem != null) { cmdItem.Name = nameElem.ElemValue; } // text description XmlElem textElem = cmdElem.FindChildElem("Text"); if (textElem != null) { cmdItem.Text = textElem.ElemValue; } // how does the ftp command use the data channel. cmdItem.SetDataChannel(cmdElem["DataChannel"]); // load the ReplyCodes element. ( the replies expected from the server to // this Ftp command ) LoadFromXml_ReplyCodes(cmdItem, cmdElem); // add to the FtpCommandTable. cmdTable.Add(cmdItem.Key, cmdItem); } return(cmdTable); }