---
name: "Mojo::DOM::HTML"
section: "3pm"
platform: "linux"
package: "libmojolicious-perl"
version: "9.39+dfsg-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Mojo::DOM::HTML"
---

# Mojo::DOM::HTML(3pm)

HTML/XML engine

## NAME

Mojo::DOM::HTML - HTML/XML engine

## SYNOPSIS

```
  use Mojo::DOM::HTML;
  # Turn HTML into DOM tree
  my $html = Mojo::DOM::HTML->new;
  $html->parse('<div><p id="a">Test</p><p id="b">123</p></div>');
  my $tree = $html->tree;
```

## DESCRIPTION

Mojo::DOM::HTML is the HTML/XML engine used by Mojo::DOM, based on the HTML Living Standard \<https://html.spec.whatwg.org\> and the Extensible Markup Language (XML) 1.0 \<https://www.w3.org/TR/xml/\>.

## FUNCTIONS

Mojo::DOM::HTML implements the following functions, which can be imported individually.

### tag\_to\_html

```
  my $str = tag_to_html 'div', id => 'foo', 'safe content';
```

Generate HTML/XML tag and render it right away. This is a significantly faster alternative to "tag" for template systems that have to generate a lot of tags.

## ATTRIBUTES

Mojo::DOM::HTML implements the following attributes.

### tree

```
  my $tree = $html->tree;
  $html    = $html->tree(['root']);
```

Document Object Model. Note that this structure should only be used very carefully since it is very dynamic.

### xml

```
  my $bool = $html->xml;
  $html    = $html->xml($bool);
```

Disable HTML semantics in parser and activate case-sensitivity, defaults to auto-detection based on XML declarations.

## METHODS

Mojo::DOM::HTML inherits all methods from Mojo::Base and implements the following new ones.

### parse

```
  $html = $html->parse('<foo bar="baz">I ♥ Mojolicious!</foo>');
```

Parse HTML/XML fragment.

### render

```
  my $str = $html->render;
```

Render DOM to HTML/XML.

### tag

```
  $html = $html->tag('div', id => 'foo', 'safe content');
```

Generate HTML/XML tag.

## SEE ALSO

Mojolicious, Mojolicious::Guides, \<https://mojolicious.org\>.
