The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

XML::Declare - Create XML documents with declaration style

SYNOPSIS

        my $doc = doc {
                element feed => sub {
                        attr xmlns => 'http://www.w3.org/2005/Atom';
                        comment "generated using XML::Declare v$XML::Declare::VERSION";
                        for (1..3) {
                                element entry => sub {
                                        element title     => 'Title', type => 'text';
                                        element content   => sub {
                                                attr type => 'text';
                                                cdata 'Desc';
                                        };
                                        element published => '123123-1231-123-123';
                                        element author => sub {
                                                element name => 'Mons';
                                        }
                                };
                        }
                };
        } '1.0','utf-8';

        print $doc;

        doc { DEFINITIONS } < args to XML::LibXML::Document->new >

        Where DEFINITIONS are
        
        element name => sub { DEFINITIONS }
        or
        element
                name => 'TextContent',
                attr => value,
                attr1 => [qw(more values)];
        
        attr name => values;
        
        text $content;
        
        cdata $content;
        
        comment $content;

EXPORT

doc BLOCK [ $version, $charset ];

Create XML::LibXML::Document;

element $name, sub { ... };

Create XML::LibXML::Element with name $name; everything, called within sub { ... } will be appended as children to this element

element $name, ATTRS

Create XML::LibXML::Element with name $name and set it's attributes. ATTRS is a pairs of key = "value">

attr $name, $value

Create XML::LibXML::Attribute with name $name and value $value

text $content

Create XML::LibXML::Text node with content $content

cdata $content

Create XML::LibXML::CDATASection node with content $content

comment $content

Create XML::LibXML::Comment node with content $content

AUTHOR

Mons Anderson <mons@cpan.org>

LICENSE AND COPYRIGHT

Copyright 2009-2010 Mons Anderson.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.