Apache2-ModXml2
view release on metacpan or search on metacpan
lib/Apache2/ModXml2.pm view on Meta::CPAN
=item unwrap_node
unwrap_node($b);
Returns the XML::LibXML::Node held by the APR::Bucket $b given
as a parameter.
=item end_bucket
end_bucket($b);
Returns the associated end bucket provided $b is a start element bucket
and undef othewise.
=item make_start_bucket
make_start_bucket($b);
Turns the bucket $b into a start element bucket and returns the
thereby created end bucket.
=item init_doc
init_doc($doc, $pool);
This function is needed since wrapping of the document node
(e.g. by calling $node->ownerDocument) will delete it when
the perl node does out of scope.
So in case the document is used this needs to be called
with the document and
a pool to append node deletion as a cleanup.
=back
=head2 XPATH FILTERING
mod_xml2 implements functions for a filter that builds a DOM subtree
each time
a streaming xpath expression (named pattern by libxml2) matches.
The tree is passed passed to a callback function and decomposed
into single nodes again afterwards.
The streaming xpath expressions are from a very limited xpath subset
as described here:
http://www.w3.org/TR/xmlschema-1/#Selector
=over 1
=item xpath_filter_init
xpath_filter_init($f, $xpath, $namespaces, &transform);
To create a streaming xpath filter this function needs to be called
from filter init. The return value is suitable for returning it from
filter init.
Every time $xpath matches &transform is called with the subtrees root
node as a parameter. The namespaces needed to compile the pattern
are passed as a list [URI, prefix, ...]. Be aware that these prefixes
are just aliases for pattern usage. They do not need to coincide with
the prefixes in the document.
=item xpath_filter
xpath_filter($f, $bb);
This is simply the work horse filter function.
=back
=head2 EXPORT
None by default.
=head1 SEE ALSO
The concept for this implementation:
http://www.heute-morgen.de/site/03_Web_Tech/50_Building_an_Apache_XML_Rewriting_Stack.shtml
The mod_xml2 apache module:
http://www.heute-morgen.de/modules/mod_xml2/
=head1 AUTHOR
Joachim Zobel, E<lt>jz-2012@heute-morgen.deE<gt>
=head1 COPYRIGHT AND LICENSE
Copyright (C) 2012 by Joachim Zobel
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.10.1 or,
at your option, any later version of Perl 5 you may have available.
=cut
( run in 1.425 second using v1.01-cache-2.11-cpan-39bf76dae61 )