Table of Contents

StringDecoratorExtensions Class

Definition

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

Extension methods for the string class hidden behind the IDecorator<T> interface.

public static class StringDecoratorExtensions
Inheritance
object
StringDecoratorExtensions

Examples

The following example demonstrates how to use the XML StringDecoratorExtensions to escape, unescape, and sanitize XML strings through the IDecorator interface.

using System;
using Cuemon;
using Cuemon.Xml;

namespace MyApp.Examples;

public class Example
{
    public void Run()
    {

        // Escape XML characters in a string
        var raw = "<hello & 'world' \"test\">";
        var escaped = Decorator.Enclose(raw).EscapeXml();
        Console.WriteLine($"Escaped:   {escaped}");
        // Output: &lt;hello &amp; &apos;world&apos; &quot;test&quot;&gt;

        // Unescape back to original
        var unescaped = Decorator.Enclose(escaped).UnescapeXml();
        Console.WriteLine($"Unescaped: {unescaped}");
        // Output: <hello & 'world' "test">

        // Sanitize a string to be a valid XML element name
        var invalidName = "123order-details!.xml";
        var sanitizedName = Decorator.Enclose(invalidName).SanitizeXmlElementName();
        Console.WriteLine($"Sanitized element name: {sanitizedName}");
        // Output: order-details.xml

        // Sanitize XML element text (remove control characters)
        var textWithControlChars = "Hello\x0001\x0002World";
        var cleanText = Decorator.Enclose(textWithControlChars).SanitizeXmlElementText();
        Console.WriteLine($"Clean text: {cleanText}");
        // Output: HelloWorld

        // Sanitize with CDATA section rules (removes ]]> sequences)
        var cdataText = "Some data with ]]> embedded";
        var safeCdata = Decorator.Enclose(cdataText).SanitizeXmlElementText(cdataSection: true);
        Console.WriteLine($"Safe CDATA: {safeCdata}");
        // Output: Some data with  embedded

}
}

Methods

Name Description
EscapeXml(IDecorator<string>)

Escapes the given XML of the enclosed string of the specified decorator.

SanitizeXmlElementName(IDecorator<string>)

Sanitizes the enclosed string of the specified decorator for any invalid characters.

SanitizeXmlElementText(IDecorator<string>, bool)

Sanitizes the enclosed string of the specified decorator for any invalid characters.

UnescapeXml(IDecorator<string>)

Unescapes the given XML of the enclosed string of the specified decorator.

See Also