NAME
XML::Writer::Lazy - Pass stringified XML to XML::Writer
VERSION
version 0.05
DESCRIPTION
Pass stringified XML to XML::Writer
SYNOPSIS
my $writer = XML::Writer::Lazy->new( OUTPUT => 'self');
my $title = "My Title!";
$writer->lazily(<<"XML");
<html>
<head>
<title>$title</title>
</head>
<body>
<p>Pipe in literal XML</p>
XML
$writer->startTag( "p", "class" => "simple" );
$writer->characters("Alongside the usual interface");
$writer->characters("123456789");
$writer->lazily("</p></body></html>");
WHY
This is 2016. The computer should do the hard work. Life's too short to write a bunch of startTag
and endTag
when my computer's perfectly capable of figuring out the right thing to do if I give it a chunk of XML.
HOW
Using a SAX parser whose events are then passed back to XML::Writer.
METHODS
This is a subclass of XML::Writer.
new
Call's XML::Writer's new()
and then instantiates the lazy parser pieces. Accepts all the same arguments as the parent method.
lazily
Take a string of XML. It should be parseable, although doesn't need to be balanced. <foo><bar>asdf
is fine, where <foo
is not. Exercises the XML::Writer methods appropriately to re-create whatever you'd passed in.
wrap_output
Only important if you're doing strange things with the OUTPUT
after instantiation. In order to keep track of what's been written already, this class wraps the OUTPUT
object inside a delegate that intercepts and stores the contents of print
. If you -- post instantiation -- replace the output object, you can call this method to rewrap it. It will change the class that that object belongs to.
AUTHOR
Peter Sergeant - pete@clueball.com
https://github.com/pjlsergeant/p5-xml-writer-lazy
LICENSE
MIT - see the LICENSE
file included in the tar.gz of this distribution.