logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

XML::Filter::BufferText - Filter to put all characters() in one event

Author

       Robin Berjon, robin@knowscape.com

Description

       This is a very simple filter. One common cause of grief (and programmer error) is that XML parsers aren't
       required to provide character events in one chunk. They can, but are not forced to, and most don't. This
       filter does the trivial but oft-repeated task of putting all characters into a single event.

       Note that this won't help you cases such as:

         <foo> blah <!-- comment --> phubar </foo>

       In the above case, given the interleaving comment, there will be two "character()" events. This may be
       worked around in the future if there is demand for it.

       An interesting way to use this filter, instead of telling users to use it, is to return it from your
       handler's constructor, already configured and all.  That'll make the buffering totally transparent to
       them ("XML::SAX::Writer" does that).

Name

       XML::Filter::BufferText - Filter to put all characters() in one event

See Also

       XML::SAX::*, XML::Generator::*, XML::Handler::*, XML::Filter::*

perl v5.34.0                                       2022-06-28                                    BufferText(3pm)

Synopsis

         my $h = SomeHandler->new;
         my $f = XML::Filter::BufferText->new( Handler => $h );
         my $p = SomeParser->new( Handler => $f );
         $p->parse;

See Also