Free cookie consent management tool by TermsFeed Policy Generator

source: trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/String2XmlFormatter.cs @ 1570

Last change on this file since 1570 was 1570, checked in by epitzer, 15 years ago

Streamline XML generation with StringBuilders (#548)

File size: 922 bytes
Line 
1using System;
2using HeuristicLab.Persistence.Core;
3using HeuristicLab.Persistence.Interfaces;
4using System.Text;
5
6
7namespace HeuristicLab.Persistence.Default.Xml.Primitive {
8
9  [EmptyStorableClass]
10  public class String2XmlFormatter : FormatterBase<string, XmlString> {
11
12    public override XmlString Format(string s) {     
13      StringBuilder sb = new StringBuilder();
14      sb.Append("<![CDATA[");
15      sb.Append(s.Replace("]]>", "]]]]><![CDATA[>"));
16      sb.Append("]]>");
17      return new XmlString(sb.ToString());
18    }
19
20    private static readonly string[] separators = new string[] { "<![CDATA[", "]]>" };
21
22    public override string Parse(XmlString x) {     
23      StringBuilder sb = new StringBuilder();
24      foreach (string s in x.Data.Split(separators,
25        StringSplitOptions.RemoveEmptyEntries)) {
26        sb.Append(s);
27      }
28      return sb.ToString();
29    }
30  }
31}
Note: See TracBrowser for help on using the repository browser.