📄 sax.html
字号:
<head><!-- Generated by perlmod2www.pl --><title>SAX documentation.</title></head><body bgcolor="white"><HR><H4>SVG::Parser</H4><H3>SAX</H3><A NAME="TOP"></A><TABLE BORDER="1" WIDTH="100%"><TR><TD><A HREF="#SUMMARY">Summary</A></TD><TD><A HREF="#libs">Included libraries</A></TD><TD><A HREF="#vardefs">Package variables</A></TD><TD><A HREF="#SYNOPSIS">Synopsis</A></TD><TD><A HREF="#DESCRIPTION">Description</A></TD><TD><A HREF="#General">General documentation</A></TD><TD><A HREF="#Methods">Methods</A></TD></TR></TABLE><HR><TABLE BORDER="0" WIDTH="100%" CELLSPACING="0"><TR><TD BGCOLOR="#ffae84"><B>Summary</B></TD></TR></TABLE><TABLE BORDER="0" WIDTH="100%"><TR><TD><pre><B>SVG::Parser::SAX</B> - XML SAX Parser for SVG documents<BR></pre></TD></TR></TABLE><A NAME="vardefs"></A><TABLE BORDER="0" WIDTH="100%" CELLSPACING="0"><TR BGCOLOR="#ffae84"><TD><B>Package variables</B></TD><TD ALIGN="RIGHT"><A HREF="#TOP">top</A></TD></TR></TABLE><TABLE BORDER="0" WIDTH="100%"><TR BGCOLOR="#ffd39b"><TD COLSPAN="2"><B>Globals (from <FONT COLOR="BLUE">use vars</FONT> definitions)</B></TD></TR><TR><TD COLSPAN="2"><font color="#1f32ff">$VERSION</font> = <font color="#007400">"0.97"</font></TD></TR></TABLE><TABLE BORDER="0" WIDTH="100%" CELLSPACING="0"><TR BGCOLOR="#ffae84"><TD WIDTH="150"><B>Included modules</B></TD><TD ALIGN="RIGHT"><A HREF="#TOP">top</A></TD></TR></TABLE><TABLE BORDER="0"><TR><TD COLSPAN="2"><b><font color="#0000ff">Carp</font></b></TD></TR><TR><TD COLSPAN="2"><b><font color="#0000ff"><a href="Base.html">SVG::Parser::Base</a></font></b> </TD></TR><TR><TD COLSPAN="2"><b><font color="#0000ff"><a href="SAX/Handler.html">SVG::Parser::SAX::Handler</a></font></b> </TD></TR><TR><TD COLSPAN="2"><b><font color="#0000ff">XML::SAX</font></b> </TD></TR><TR><TD COLSPAN="2"><b><font color="#0000ff">strict</font></b></TD></TR></TABLE><A NAME="libs"></A><TABLE BORDER="0" WIDTH="100%" CELLSPACING="0"><TR BGCOLOR="#ffae84"><TD><B>Inherit</B></TD><TD ALIGN="RIGHT"><A HREF="#TOP">top</A></TD></TR></TABLE><TABLE BORDER="0"><TR><TD><b><font color="#0000ff">## this changes once the parser type is known</font></b> <b><font color="#0000ff"><a href="Base.html">SVG::Parser::Base</a></font></b> </TD></TR></TABLE><A NAME="SYNOPSIS"></A><TABLE BORDER="0" WIDTH="100%" CELLSPACING="0"><TR BGCOLOR="#ffae84"><TD><B>Synopsis</B></TD><TD ALIGN="RIGHT"><A HREF="#TOP">top</A></TD></TR></TABLE><TABLE BORDER="0"><TR><TD COLSPAN="2"><pre> #!/usr/bin/perl -w<BR> use strict;<BR> use SVG::Parser::SAX;<BR><BR> die "Usage: $0 <file>\n" unless @ARGV;<BR><BR> my $xml;<BR> {<BR> local $/=undef;<BR> $xml=<>;<BR> }<BR><BR> my $parser=new <B>SVG::Parser::SAX</B>(-debug => 1);<BR><BR> my $svg=$parser->parse($xml);<BR><BR> print $svg->xmlify;<BR></pre></TD></TR></TABLE><A NAME="DESCRIPTION"></A><TABLE BORDER="0" WIDTH="100%" CELLSPACING="0"><TR BGCOLOR="#ffae84"><TD><B>Description</B></TD><TD ALIGN="RIGHT"><A HREF="#TOP">top</A></TD></TR></TABLE><TABLE BORDER="0"><TR><TD COLSPAN="2"><pre><B>SVG::Parser::SAX</B> is the SAX-based parser module used by SVG::Parser when an<BR>underlying XML::SAX-based parser is selected. It may also be used directly, as shown<BR>in the synopsis above.<BR><BR>Use SVG::Parser to retain maximum flexibility as to which underlying parser is chosen.<BR>Use <B>SVG::Parser::SAX</B> to supply SAX-specific parser options or where the presence<BR>of a functional XML::SAX parser is known and/or preferred.<BR></pre><pre>None. However, a preferred SAX parser implementations can be specified by<BR>passing the package name to <B>SVG::Parser::SAX</B> in the import list. For example:<BR><BR> use <B>SVG::Parser::SAX</B> qw(XML::LibXML::SAX::Parser);<BR><BR>A minimum version number may be additionally suppied as a second import item:<BR><BR> use <B>SVG::Parser::SAX</B> (XML::LibXML::SAX::Parser => 1.40);<BR><BR>This overrides the automatic selection of a suitable SAX parser. To try several<BR>different parsers in turn, use the SVG::Parser module instead and restrict it<BR>to only try SAX-based parsers. To make use of the automatic selection mechanism,<BR>omit the import list.<BR><BR>When loaded via SVG::Parser, this parent class may be specified by placing it<BR>after the '=' in a parser specification:<BR><BR>See <a href="../Parser.html" target="urlWin"><b>SVG::Parser</b></a> for more details.<BR></pre><pre>See svgsaxparse in the examples directory of the distribution.<BR></pre></TD></TR></TABLE><A NAME="Methods"></A><TABLE BORDER="0" WIDTH="100%" CELLSPACING="0"><TR BGCOLOR="#ffae84"><TD><B>Methods</B></TD><TD ALIGN="RIGHT"><A HREF="#TOP">top</A></TD></TR></TABLE><TABLE BORDER="1" CELLSPACING="5"><TR><TD><B>import</B></TD><TD><FONT COLOR="RED"><B>No description</B></FONT></TD><TD><A HREF="#CODE1">Code</A></TD></TR><TR><TD><B>new</B></TD><TD><FONT COLOR="RED"><B>No description</B></FONT></TD><TD><A HREF="#CODE2">Code</A></TD></TR><TR><TD><B>parsefile</B></TD><TD><FONT COLOR="RED"><B>No description</B></FONT></TD><TD><A HREF="#CODE3">Code</A></TD></TR></TABLE><A NAME="MethDesc"></A><HR><H2>Methods description</H2><A NAME="MethCode"></A><HR><H2>Methods code</H2><TABLE BORDER="0" WIDTH="100%" CELLSPACING="0"><TR BGCOLOR="#dcab68"><TD WIDTH="200"><A NAME="CODE1"></A><B>import</B></TD><TD>description</TD><TD WIDTH="30"><A HREF="#TOP">top</A></TD><TD WIDTH="30">prev</TD><TD WIDTH="30"><A HREF="#CODE2">next</A></TD></TR></TABLE><font color="#0000ff"><b>sub</b></font> <font color="#ff0000"><b>import</b></font> {<pre> <font color="#0000ff"><b>my</b></font> <font color="#1f32ff">$package</font>=<font color="#4169e1"><b>shift</b></font>; <font color="#ff0000">## permit an alternative XML::SAX parser to be our parser</font><BR> <font color="#0000ff"><b>if</b></font> <font color="#0000ff"><b>(</b></font><font color="#1f32ff">@_</font><font color="#0000ff"><b>)</b></font> <font color="#0000ff"><b>{</b></font> <font color="#0000ff"><b>my</b></font> <font color="#0000ff"><b>(</b></font><font color="#1f32ff">$superclass</font>,<font color="#1f32ff">$version</font><font color="#0000ff"><b>)</b></font>=<font color="#1f32ff">@_</font>; <font color="#ff0000">## select specific XML::SAX parser: 'pkg' or 'pkg => version'</font><BR> <font color="#0000ff"><b>if</b></font> <font color="#0000ff"><b>(</b></font><font color="#1f32ff">$version</font><font color="#0000ff"><b>)</b></font> <font color="#0000ff"><b>{</b></font> <font color="#1f32ff">$XML</font>::<font color="#8000ff"><b>SAX::ParserPackage</b></font>=<font color="#007400">"<font color="#1f32ff">$superclass</font> (<font color="#1f32ff">$version</font>)"</font> <font color="#0000ff"><b>if</b></font> <font color="#0000ff"><b>eval</b></font> <font color="#4169e1"><b>qq</b></font><font color="#007400">[ require <font color="#1f32ff">$superclass</font> <font color="#1f32ff">$version</font>; ]</font>; <font color="#0000ff"><b>}</b></font> <font color="#0000ff"><b>else</b></font> <font color="#0000ff"><b>{</b></font> <font color="#1f32ff">$XML</font>::<font color="#8000ff"><b>SAX::ParserPackage</b></font>=<font color="#1f32ff">$superclass</font> <font color="#0000ff"><b>if</b></font> <font color="#0000ff"><b>eval</b></font> <font color="#4169e1"><b>qq</b></font><font color="#007400">[ require <font color="#1f32ff">$superclass</font>; ]</font>; <font color="#0000ff"><b>}</b></font> <font color="#0000ff"><b>}</b></font></pre>}<BR><TABLE BORDER="0" WIDTH="100%" CELLSPACING="0"><TR BGCOLOR="#dcab68"><TD WIDTH="200"><A NAME="CODE2"></A><B>new</B></TD><TD>description</TD><TD WIDTH="30"><A HREF="#TOP">top</A></TD><TD WIDTH="30"><A HREF="#CODE1">prev</A></TD><TD WIDTH="30"><A HREF="#CODE3">next</A></TD></TR></TABLE><font color="#0000ff"><b>sub</b></font> <font color="#ff0000"><b>new</b></font> {<pre> <font color="#0000ff"><b>my</b></font> <font color="#1f32ff">$proto</font>=<font color="#4169e1"><b>shift</b></font>; <font color="#0000ff"><b>my</b></font> <font color="#1f32ff">$class</font>=<font color="#4169e1"><b>ref</b></font><font color="#0000ff"><b>(</b></font><font color="#1f32ff">$proto</font><font color="#0000ff"><b>)</b></font> || <font color="#1f32ff">$proto</font>; <font color="#0000ff"><b>my</b></font> <font color="#1f32ff">%attrs</font>=<font color="#1f32ff">@_</font>; <font color="#0000ff"><b>my</b></font> <font color="#1f32ff">$self</font>=<font color="#8000ff"><b>XML::SAX::ParserFactory</b></font>-><font color="#ff8204">parser</font><font color="#0000ff"><b>(</b></font> Handler => <A HREF="SAX/Handler.html"><font color="#8000ff"><b>SVG::Parser::SAX::Handler</b></font></A>-><font color="#0000ff"><b>new</b></font><font color="#0000ff"><b>(</b></font><font color="#1f32ff">%attrs</font><font color="#0000ff"><b>)</b></font>, <font color="#0000ff"><b>)</b></font>; <font color="#ff0000">## first time through set up the @ISA for the package</font><BR> <font color="#1f32ff">@ISA</font>=<font color="#0000ff"><b>(</b></font><font color="#4169e1"><b>ref</b></font><font color="#0000ff"><b>(</b></font><font color="#1f32ff">$self</font><font color="#0000ff"><b>)</b></font>,<font color="#007400">"SVG::Parser::Base"</font><font color="#0000ff"><b>)</b></font> <font color="#0000ff"><b>if</b></font> <font color="#1f32ff">@ISA</font>==1; <font color="#0000ff"><b>return</b></font> <font color="#4169e1"><b>bless</b></font> <font color="#1f32ff">$self</font>,<font color="#1f32ff">$class</font>;</pre>}<BR><TABLE BORDER="0" WIDTH="100%" CELLSPACING="0"><TR BGCOLOR="#dcab68"><TD WIDTH="200"><A NAME="CODE3"></A><B>parsefile</B></TD><TD>description</TD><TD WIDTH="30"><A HREF="#TOP">top</A></TD><TD WIDTH="30"><A HREF="#CODE2">prev</A></TD><TD WIDTH="30">next</TD></TR></TABLE><font color="#0000ff"><b>sub</b></font> <font color="#ff0000"><b>parsefile</b></font> {<pre> <font color="#0000ff"><b>my</b></font> <font color="#0000ff"><b>(</b></font><font color="#1f32ff">$self</font>,<font color="#1f32ff">$source</font>,<font color="#1f32ff">@args</font><font color="#0000ff"><b>)</b></font>=<font color="#1f32ff">@_</font>; <font color="#0000ff"><b>my</b></font> <font color="#1f32ff">$type</font>=<font color="#1f32ff">$self</font>-><font color="#ff8204">identify</font><font color="#0000ff"><b>(</b></font><font color="#1f32ff">$source</font><font color="#0000ff"><b>)</b></font>; <font color="#0000ff"><b>return</b></font> <font color="#007400">""</font> <font color="#0000ff"><b>if</b></font> <font color="#1f32ff">$type</font> <font color="#0000ff"><b>eq</b></font> <font color="#1f32ff">$self</font>->ARG_IS_INVALID; <font color="#0000ff"><b>if</b></font> <font color="#0000ff"><b>(</b></font><font color="#1f32ff">$type</font> <font color="#0000ff"><b>eq</b></font> <font color="#1f32ff">$self</font>->ARG_IS_STRING<font color="#0000ff"><b>)</b></font> <font color="#0000ff"><b>{</b></font> <font color="#0000ff"><b>local</b></font><font color="#0000ff"><b>(</b></font>*FH<font color="#0000ff"><b>)</b></font>; <font color="#4169e1"><b>open</b></font> FH,<font color="#1f32ff">$source</font> or croak <font color="#007400">"Couldn't open $: $!"</font>; <font color="#0000ff"><b>return</b></font> <font color="#1f32ff">$self</font>-><font color="#8000ff"><b>SUPER</b></font>::<font color="#ff8204">parse_file</font><font color="#0000ff"><b>(</b></font>*FH,<font color="#1f32ff">@_</font><font color="#0000ff"><b>)</b></font>; <font color="#0000ff"><b>}</b></font> <font color="#0000ff"><b>elsif</b></font> <font color="#0000ff"><b>(</b></font><font color="#1f32ff">$type</font> <font color="#0000ff"><b>eq</b></font> <font color="#1f32ff">$self</font>->ARG_IS_HASHRF<font color="#0000ff"><b>)</b></font> <font color="#0000ff"><b>{</b></font> <font color="#0000ff"><b>return</b></font> <font color="#1f32ff">$self</font>-><font color="#8000ff"><b>SUPER</b></font>::<font color="#ff8204">parse</font><font color="#0000ff"><b>(</b></font><font color="#0000ff"><b>{</b></font> %$source,@args <font color="#0000ff"><b>}</b></font><font color="#0000ff"><b>)</b></font>; <font color="#0000ff"><b>}</b></font> <font color="#0000ff"><b>else</b></font> <font color="#0000ff"><b>{</b></font> <font color="#0000ff"><b>return</b></font> <font color="#1f32ff">$self</font>-><font color="#8000ff"><b>SUPER</b></font>::<font color="#ff8204">parse_file</font><font color="#0000ff"><b>(</b></font><font color="#1f32ff">$source</font>,<font color="#1f32ff">@_</font><font color="#0000ff"><b>)</b></font>; <font color="#0000ff"><b>}</b></font></pre>}<BR><A NAME="General"></A><HR><H2>General documentation</H2><TABLE BORDER="0" WIDTH="100%" CELLSPACING="0"><TR BGCOLOR="#4492df"><TD><A NAME="_pod_AUTHOR"><B>AUTHOR</A></B></TD><TD><A HREF="#TOP">top</A></TD></TR><TR><TD COLSPAN="2"><pre>Peter Wainwright, <a href="mailto:peter.wainwright@cybrid.net">peter.wainwright@cybrid.net</a><BR></pre></TD></TR><TR BGCOLOR="#4492df"><TD><A NAME="_pod_SEE ALSO"><B>SEE ALSO</A></B></TD><TD><A HREF="#TOP">top</A></TD></TR><TR><TD COLSPAN="2"><pre><a href="#_pod_SVG">SVG</a>, <a href="../Parser.html" target="urlWin"><b>SVG::Parser</b></a>, <a href="Expat.html" target="urlWin"><b>SVG::Parser::Expat</b></a>, <a href="#_pod_XML::SAX">XML::SAX</a><BR></pre></TD></TR></TABLE></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -