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
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