Matt Sergeant


XML::PYX - XML to PYX generator


  use XML::PYX;
  my $parser = XML::PYX::Parser->new;
  my $string = $parser->parsefile($filename);


After reading about PYX on, I thought it was a pretty cool idea, so I built this, to generate PYX from XML using perl. See for an excellent introduction.

The package contains 2 usable packages, and 3 utilities that are probably currently more use than the module:

        pyx - a XML to PYX converter using XML::Parser
        pyxv - a Validating XML to PYX converter using XML::Checker::Parser
        pyxw - a PYX to XML converter
        pyxhtml - an HTML to PYX converter using HTML::TreeBuilder

All these utilities can be pipelined together, so you can have:

        pyx test.xml | grep -v "^-" | pyxw > new.xml

Which should remove all text from an XML file (leaving only tags).

The 2 packages are XML::PYX::Parser and XML::PYX::Parser::ToCSF. The former is a direct subclass of XML::Parser that simply returns a PYX string on a call to parse or parsefile. The latter stands for To Currently Selected Filehandle. Instead of returning a string, it sends output directly to the currently selected filehandle. This is much better for pipelined utilities for obvious reasons.

There's a special variable: $XML::PYX::Lame. Set it to 1 to use a "Lame" parser that simply uses regexps. This is useful, for example, if you are changing the input to invalid XML for some reason. You can then use $XML::PYX::Lame = 1 to enable the non-xml parser. It does check for some things, like balanced tags, but otherwise it's pretty lame :)

Lame mode is enabled for pyx and pyxw with the -l option.


Matt Sergeant,