DOM(3)

NAME XML::Generator::DOM

XML::Generator subclass for producing DOM trees instead of
strings.

SYNOPSIS

use XML::Generator::DOM;

my $dg  = XML::Generator::DOM->new();
my $doc = $dg->xml($dg->xmlcmnt("Test document."),
                   $dg->foo({'baz'   =>    'bam'},
42));
print $doc->toString;

yields:

<?xml version="1.0" standalone="yes"?>
<!--Test document-->
<foo baz="bam">42</foo>

DESCRIPTION

XML::Generator::DOM subclasses XML::Generator in order to
produce DOM trees instead of strings (see XML::Generator
and XML::DOM). This module is still experimental and its
semantics might change.

Essentially, tag methods return XML::DOM::DocumentFragment
objects, constructed either from a DOM document passed
into the constructor or a default document that XML::Gen
erator::DOM will automatically construct.

Calling the xml() method will return this automatically
constructed document and cause a fresh one to be con
structed for future tag method calls. If you passed in
your own document, you may not call the xml() method.

Below, we just note the remaining differences in semantics
between XML::Generator methods and XML::Generator::DOM
methods.

CONSTRUCTOR

These configuration options are accepted but have no
effect on the semantics of the returned object: escape,
pretty, conformance and empty.

TAG METHODS

Subsequently, tag method semantics are somewhat different
for this module compared to XML::Generator. The primary
difference is that tag method return XML::DOM::Document
Fragment objects. Namespace and attribute processing
remains the same, but remaining arguments to tag methods
must either be text or other XML::DOM::DocumentFragment
objects. No escape processing, syntax checking, or output
control is done; this is all left up to XML::DOM.

SPECIAL TAGS

All special tags are available by default with XML::Gener
ator::DOM; you don't need to use 'conformance' =>
'strict'.

xmlpi(@args)

Arguments will simply be concatenated and passed as the
data to the XML::DOM::ProcessingInstruction object that is
returned.

xmlcmnt

Escaping of '--' is done by XML::DOM::Comment, which
replaces both hyphens with '&#45;'. An XML::DOM::Comment
object is returned.

xmldecl

Returns an XML::DOM::XMLDecl object. Respects 'version',
'encoding' and 'dtd' settings in the object.

xmldecl

Returns an XML::DOM::DocumentType object.

xmlcdata

Returns an XML::DOM::CDATASection object.

xml

As described above, xml() can only be used when dom_docu
ment was not set in the object. The automatically created
document will have its XML Declaration set and the argu
ments to xml() will be appended to it. Then a new DOM
document is automatically generated and the old one is
returned. This is the only way to get a DOM document from
this module.
Copyright © 2010-2025 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout