---
name: "HTML::Template::Compiled::Plugin::XMLEscape"
section: "3pm"
platform: "linux"
package: "libhtml-template-compiled-perl"
version: "1.003-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/HTML::Template::Compiled::Plugin::XMLEscape"
---

# HTML::Template::Compiled::Plugin::XMLEscape(3pm)

XML-Escaping for HTC

## NAME

HTML::Template::Compiled::Plugin::XMLEscape - XML-Escaping for HTC

## SYNOPSIS

```
    use HTML::Template::Compiled::Plugin::XMLEscape;
    my $htc = HTML::Template::Compiled->new(
        plugin => [qw(HTML::Template::Compiled::Plugin::XMLEscape)],
        ...
    );
```

## METHODS

- register

  gets called by HTC

- escape\_xml

  escapes data for XML CDATA.

- escape\_xml\_attr

  escapes data for XML attributes

## EXAMPLE

```
    use HTML::Template::Compiled::Plugin::XMLEscape;
    my $htc = HTML::Template::Compiled->new(
        plugin => [qw(HTML::Template::Compiled::Plugin::XMLEscape)],
        tagstyle => [qw(-classic -comment -asp +tt)],
        scalarref => \'<foo attr="[%= attribute %]">[%= cdata escape=XML %]</foo>',
        default_escape => 'XML_ATTR',
    );
    $htc->param(
        attr => 'foo & bar',
        cdata => 'text < with > tags',
    );
    print $htc->output;
```

Output:

```
    <foo attr="foo &amp; bar">text &lt; with &gt; tags</foo>
```
