rl is a command-line tool that reads lines from an input file or stdin,
randomizes the lines and outputs a specified number of lines. It does
this with only a single pass over the input while trying to use as little
memory as possible.
XML::RSS::Feed - Persistant XML RSS Encapsulation
Serialize your RSS as JavaScript.
Perhaps you use XML::RSS to generate RSS for consumption by RSS parsers.
Perhaps you also get requests for how to use the RSS feed by people who
have no idea how to parse XML, or write Perl programs for that matter.
Enter XML::RSS::JavaScript, a simle subclass of XML::RSS which writes your
RSS feed as a sequence of JavaScript print statements. This means you
can then write the JavaScript to disk, and a users HTML can simple
include it like so:
<script language="JavaScript" src="/myfeed.js"></script>
What's more the javascript emits HTML that can be fully styled with
CSS. See the CSS examples included with the distribution in the css directory.
XML::RSS::LibXML uses XML::LibXML (libxml2) for parsing RSS instead of
XML::RSS' XML::Parser (expat), while trying to keep interface
compatibility with XML::RSS.
XML::RSS::Liberal is a subclass of XML::RSS::LibXML, for those of you
who want to parse broken RSS files (as they often are). It uses
XML::Liberal as its core parser, and therefore whatever broken XML you
provided, as long as XML::Liberal can tolerate it.
XML::RSS::Parser is a lightweight liberal parser of RSS feeds. This parser
is "liberal" in that it does not demand compliance of a specific RSS version
and will attempt to gracefully handle tags it does not expect or understand.
The parser's only requirements is that the file is well-formed XML and
remotely resembles RSS. Roughly speaking, well formed XML with a channel
element as a direct sibling or the root tag and item elements etc.
There are a number of advantages to using this module then just using
a standard parser-tree combination. There are a number of different RSS
formats in use today. In very subtle ways these formats are not entirely
compatible from one to another. XML::RSS::Parser makes a couple assumptions
to "normalize" the parse tree into a more consistent form. For instance,
it forces channel and item into a parent-child relationship.
This module is for writing RSS files, simply. It transparently handles all
the unpleasant details of RSS, like proper XML escaping, and also has a good
number of Do-What-I-Mean features, like not changing the modtime on a
written-out RSS file if the file content hasn't changed, and like
automatically removing any HTML tags from content you might pass in.
This module isn't meant to have the full expressive power of RSS; instead, it
provides functions that are most commonly needed by RSS-writing programs.
This module was created to help those who need to manage
RDF Site Summary (RSS) files. It makes quick work of
creating, updating, and saving RSS files.
XML::Reader provides a simple and easy to use interface for
sequentially parsing XML files (so called "pull-mode" parsing)
and at the same time keeps track of the complete XML-path.
It was developped as a wrapper on top of XML::Parser.
Often, XML messages and schemas are created by automatic tools. These
tools may provide very nice user interfaces, but tend to produce
horrible XML. If you have to read these ugly products, you are in for
pain. The purpose of this module (and the script "xmlrewrite" which is
part of this distribution) is to be able to rewrite XML messages and
Schema's into something maintainable.
The main difference between this module and other beautifiers is that
the clean-up is based on schema rules. For instance, it is permitted
to remove blanks around and inside integers, but not in strings.
Beautifiers which do not look into the schema have only limited
possibilities for cleanup, or may accidentally change the message
content.