home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 May / Chip_2000-05_cd1.bin / zkuste / Perl / ActivePerl-5.6.0.613.msi / 䆊䌷䈹䈙䏵-䞅䞆䞀㡆䞃䄦䠥 / _76715c26f2cff1be957455d17ef11753 < prev    next >
Text File  |  2000-03-23  |  4KB  |  134 lines

  1.  
  2. <HTML>
  3. <HEAD>
  4. <TITLE>HTML::Filter - Filter HTML text through the parser</TITLE>
  5. <LINK REL="stylesheet" HREF="../../../Active.css" TYPE="text/css">
  6. <LINK REV="made" HREF="mailto:">
  7. </HEAD>
  8.  
  9. <BODY>
  10. <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
  11. <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
  12. <STRONG><P CLASS=block> HTML::Filter - Filter HTML text through the parser</P></STRONG>
  13. </TD></TR>
  14. </TABLE>
  15.  
  16. <A NAME="__index__"></A>
  17. <!-- INDEX BEGIN -->
  18.  
  19. <UL>
  20.  
  21.     <LI><A HREF="#name">NAME</A></LI><LI><A HREF="#supportedplatforms">SUPPORTED PLATFORMS</A></LI>
  22.  
  23.     <LI><A HREF="#synopsis">SYNOPSIS</A></LI>
  24.     <LI><A HREF="#description">DESCRIPTION</A></LI>
  25.     <LI><A HREF="#examples">EXAMPLES</A></LI>
  26.     <LI><A HREF="#bugs">BUGS</A></LI>
  27.     <LI><A HREF="#see also">SEE ALSO</A></LI>
  28.     <LI><A HREF="#copyright">COPYRIGHT</A></LI>
  29. </UL>
  30. <!-- INDEX END -->
  31.  
  32. <HR>
  33. <P>
  34. <H1><A NAME="name">NAME</A></H1>
  35. <P>HTML::Filter - Filter HTML text through the parser</P>
  36. <P>
  37. <HR>
  38. <H1><A NAME="supportedplatforms">SUPPORTED PLATFORMS</A></H1>
  39. <UL>
  40. <LI>Linux</LI>
  41. <LI>Solaris</LI>
  42. <LI>Windows</LI>
  43. </UL>
  44. <HR>
  45. <H1><A NAME="synopsis">SYNOPSIS</A></H1>
  46. <PRE>
  47.  require HTML::Filter;
  48.  $p = HTML::Filter->new->parse_file("index.html");</PRE>
  49. <P>
  50. <HR>
  51. <H1><A NAME="description">DESCRIPTION</A></H1>
  52. <P>The <EM>HTML::Filter</EM> is an HTML parser that by default prints the
  53. original text parsed (a slow version of <CODE>cat(1)</CODE> basically).  You can
  54. override the callback methods to modify the filtering for some of the
  55. HTML elements and you can override <CODE>output()</CODE> method which is called to
  56. print the HTML text.</P>
  57. <P>The <EM>HTML::Filter</EM> is a subclass of <EM>HTML::Parser</EM>. This means that
  58. the document should be given to the parser by calling the $p-><CODE>parse()</CODE>
  59. or $p-><CODE>parse_file()</CODE> methods.</P>
  60. <P>
  61. <HR>
  62. <H1><A NAME="examples">EXAMPLES</A></H1>
  63. <P>The first example is a filter that will remove all comments from an
  64. HTML file.  This is achieved by simply overriding the comment method
  65. to do nothing.</P>
  66. <PRE>
  67.   package CommentStripper;
  68.   require HTML::Filter;
  69.   @ISA=qw(HTML::Filter);
  70.   sub comment { }  # ignore comments</PRE>
  71. <P>The second example shows a filter that will remove any <TABLE>s
  72. found in the HTML file.  We specialize the <CODE>start()</CODE> and <CODE>end()</CODE> methods
  73. to count table tags and then make output not happen when inside a
  74. table.</P>
  75. <PRE>
  76.   package TableStripper;
  77.   require HTML::Filter;
  78.   @ISA=qw(HTML::Filter);
  79.   sub start
  80.   {
  81.      my $self = shift;
  82.      $self->{table_seen}++ if $_[0] eq "table";
  83.      $self->SUPER::start(@_);
  84.   }</PRE>
  85. <PRE>
  86.   sub end
  87.   {
  88.      my $self = shift;
  89.      $self->SUPER::end(@_);
  90.      $self->{table_seen}-- if $_[0] eq "table";
  91.   }</PRE>
  92. <PRE>
  93.   sub output
  94.   {
  95.       my $self = shift;
  96.       unless ($self->{table_seen}) {
  97.           $self->SUPER::output(@_);
  98.       }
  99.   }</PRE>
  100. <P>If you want to collect the parsed text internally you might want to do
  101. something like this:</P>
  102. <PRE>
  103.   package FilterIntoString;
  104.   require HTML::Filter;
  105.   @ISA=qw(HTML::Filter);
  106.   sub output { push(@{$_[0]->{fhtml}}, $_[1]) }
  107.   sub filtered_html { join("", @{$_[0]->{fhtml}}) }</PRE>
  108. <P>
  109. <HR>
  110. <H1><A NAME="bugs">BUGS</A></H1>
  111. <P>Comments in declarations are removed from the declarations and then
  112. inserted as separate comments after the declaration.  If you turn on
  113. strict_comment(), then comments with embedded ``--'' are split into
  114. multiple comments.</P>
  115. <P>
  116. <HR>
  117. <H1><A NAME="see also">SEE ALSO</A></H1>
  118. <P><A HREF="../../../site/lib/HTML/Parser.html">the HTML::Parser manpage</A></P>
  119. <P>
  120. <HR>
  121. <H1><A NAME="copyright">COPYRIGHT</A></H1>
  122. <P>Copyright 1997-1998 Gisle Aas.</P>
  123. <P>This library is free software; you can redistribute it and/or
  124. modify it under the same terms as Perl itself.</P>
  125. <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
  126. <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
  127. <STRONG><P CLASS=block> HTML::Filter - Filter HTML text through the parser</P></STRONG>
  128. </TD></TR>
  129. </TABLE>
  130.  
  131. </BODY>
  132.  
  133. </HTML>
  134.