The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.


XML::Filter::XInclude - XInclude as a SAX Filter


  use XML::SAX;
  use XML::SAX::Writer;
  use XML::Filter::XInclude;

  my $parser = XML::SAX::ParserFactory->parser(
      Handler => XML::Filter::XInclude->new(
          Handler => XML::SAX::Writer->new()


This module implements a simple SAX filter that provides XInclude support. It does NOT support XPointer.

XInclude is very simple, just include something like this in your XML document:

  <xi:include href="foo.xml" 

And it will load foo.xml and parse it in the current SAX stream.

If you specify the attribute parse="text", it will be treated as a plain text file, and inserted into the stream as a series of calls to the characters() method.

URI's are supported via LWP.

Currently encoding is not supported.


Matt Sergeant,


This is free software, you may use it and distribute it under the same terms as Perl itself.