public static bool TryParse(string text, ParseAttrib param, out string value) { if (string.IsNullOrEmpty(text)) { value = string.Empty; return(false); } ICollection <ParseFormat.Range <int> > ranges; if (!ParserEx.TryParseRanges(text, RangeParser, param, out ranges)) { value = string.Empty; return(false); } value = text; return(true); }
public static string RangesToXml(string text, int step, Nparams param) { ICollection <ParseFormat.Range <int> > ranges; if (!ParserEx.TryParseRanges(text, Prime.RangeParser, param.Get <RangeParserAttrib>(), out ranges)) { return(null); } // to xml var b = new StringBuilder(); var w = XmlWriter.Create(b, new XmlWriterSettings() { OmitXmlDeclaration = true }); w.WriteStartElement("root"); foreach (var range in ranges) { if (range.HasEndValue) { for (int index = range.BeginValue; index <= range.EndValue; index += step) { w.WriteStartElement("item"); w.WriteAttributeString("key", index.ToString()); w.WriteEndElement(); } continue; } w.WriteStartElement("item"); w.WriteAttributeString("key", range.BeginValue.ToString()); w.WriteEndElement(); } w.WriteEndElement(); w.Close(); return(b.ToString()); }