Table of Contents

StringExtensions Class

Definition

Namespace
Cuemon.Extensions.Xml
Assemblies
Cuemon.Extensions.Xml.dll
Source
src/Cuemon.Extensions.Xml/StringExtensions.cs

Extension methods for the string class.

public static class StringExtensions
Inheritance
object
StringExtensions

Examples

StringExtensions in the Xml namespace provides XML escaping, unescaping, element name sanitization, and control-character removal for text content. This example starts with "Use & < > \" ' in XML" and calls EscapeXml to produce "Use &amp; &lt; &gt; &quot; &apos; in XML", then round-trips back with UnescapeXml. It also demonstrates SanitizeXmlElementName on "1st Element Name!" to replace leading digits and punctuation with underscores, and SanitizeXmlElementText to remove control characters except \t, \n, \r, with optional CDATA section protection that removes "]]>" sequences. Console output displays each transformation result.

using System;
using Cuemon.Extensions.Xml;

namespace MyApp.Xml
{
    public class StringExtensionsExample
    {
        public void Demonstrate()
        {
            // Escape XML special characters
            var unsafeText = "Use & < > \" ' in XML";
            var escaped = unsafeText.EscapeXml();
            Console.WriteLine(escaped); // "Use &amp; &lt; &gt; &quot; &apos; in XML"

            // Unescape XML back to original text
            var unescaped = escaped.UnescapeXml();
            Console.WriteLine(unescaped); // "Use & < > \" ' in XML"

            // Sanitize a string for use as an XML element name
            var invalidName = "1st Element Name!";
            var sanitizedName = invalidName.SanitizeXmlElementName();
            Console.WriteLine(sanitizedName); // "_st_Element_Name_"

            // Sanitize XML element text (remove control characters except \t, \n, \r)
            var invalidText = "Valid text \x00 with \x01 control chars";
            var sanitizedText = invalidText.SanitizeXmlElementText();
            Console.WriteLine(sanitizedText); // "Valid text  with  control chars"

            // Sanitize XML element text with CDATA section rules (discourages "]]>" sequence)
            var cdataText = "text with ]]> inside";
            var sanitizedCdata = cdataText.SanitizeXmlElementText(cdataSection: true);
            Console.WriteLine(sanitizedCdata); // "text with ]] inside"

}}
}

Methods

Name Description
EscapeXml(string)

Escapes the given XML value.

SanitizeXmlElementName(string)

Sanitizes the value for any invalid characters.

SanitizeXmlElementText(string, bool)

Sanitizes the value for any invalid characters.

UnescapeXml(string)

Unescapes the given XML value.