⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 parser.html

📁 perl教程
💻 HTML
📖 第 1 页 / 共 3 页
字号:
<?xml version="1.0" ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<!-- saved from url=(0017)http://localhost/ -->
<script language="JavaScript" src="../../displayToc.js"></script>
<script language="JavaScript" src="../../tocParas.js"></script>
<script language="JavaScript" src="../../tocTab.js"></script>
<link rel="stylesheet" type="text/css" href="../../scineplex.css">
<title>XML::Parser - A perl module for parsing XML documents</title>
<link rel="stylesheet" href="../../Active.css" type="text/css" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rev="made" href="mailto:" />
</head>

<body>

<script>writelinks('__top__',2);</script>
<h1><a>XML::Parser - A perl module for parsing XML documents</a></h1>
<p><a name="__index__"></a></p>

<!-- INDEX BEGIN -->

<ul>

	<li><a href="#name">NAME</a></li>
	<li><a href="#synopsis">SYNOPSIS</a></li>
	<li><a href="#description">DESCRIPTION</a></li>
	<li><a href="#methods">METHODS</a></li>
	<li><a href="#handlers">HANDLERS</a></li>
	<ul>

		<li><a href="#init__expat_">Init                (Expat)</a></li>
		<li><a href="#final__expat_">Final                (Expat)</a></li>
		<li><a href="#start__expat__element____attr__val_________">Start                (Expat, Element [, Attr, Val [,...]])</a></li>
		<li><a href="#end__expat__element_">End                (Expat, Element)</a></li>
		<li><a href="#char__expat__string_">Char                (Expat, String)</a></li>
		<li><a href="#proc__expat__target__data_">Proc                (Expat, Target, Data)</a></li>
		<li><a href="#comment__expat__data_">Comment                (Expat, Data)</a></li>
		<li><a href="#cdatastart__expat_">CdataStart        (Expat)</a></li>
		<li><a href="#cdataend__expat_">CdataEnd                (Expat)</a></li>
		<li><a href="#default__expat__string_">Default                (Expat, String)</a></li>
		<li><a href="#unparsed__expat__entity__base__sysid__pubid__notation_">Unparsed                (Expat, Entity, Base, Sysid, Pubid, Notation)</a></li>
		<li><a href="#notation__expat__notation__base__sysid__pubid_">Notation                (Expat, Notation, Base, Sysid, Pubid)</a></li>
		<li><a href="#externent__expat__base__sysid__pubid_">ExternEnt        (Expat, Base, Sysid, Pubid)</a></li>
		<li><a href="#externentfin__expat_">ExternEntFin        (Expat)</a></li>
		<li><a href="#entity__expat__name__val__sysid__pubid__ndata__isparam_">Entity                (Expat, Name, Val, Sysid, Pubid, Ndata, IsParam)</a></li>
		<li><a href="#element__expat__name__model_">Element                (Expat, Name, Model)</a></li>
		<li><a href="#attlist__expat__elname__attname__type__default__fixed_">Attlist                (Expat, Elname, Attname, Type, Default, Fixed)</a></li>
		<li><a href="#doctype__expat__name__sysid__pubid__internal_">Doctype                (Expat, Name, Sysid, Pubid, Internal)</a></li>
		<li><a href="#__doctypefin__parser_">* DoctypeFin                (Parser)</a></li>
		<li><a href="#xmldecl__expat__version__encoding__standalone_">XMLDecl                (Expat, Version, Encoding, Standalone)</a></li>
	</ul>

	<li><a href="#styles">STYLES</a></li>
	<ul>

		<li><a href="#debug">Debug</a></li>
		<li><a href="#subs">Subs</a></li>
		<li><a href="#tree">Tree</a></li>
		<li><a href="#objects">Objects</a></li>
		<li><a href="#stream">Stream</a></li>
	</ul>

	<li><a href="#encodings">ENCODINGS</a></li>
	<li><a href="#authors">AUTHORS</a></li>
</ul>
<!-- INDEX END -->

<hr />
<p>
</p>
<h1><a name="name">NAME</a></h1>
<p>XML::Parser - A perl module for parsing XML documents</p>
<p>
</p>
<hr />
<h1><a name="synopsis">SYNOPSIS</a></h1>
<pre>
  <span class="keyword">use</span> <span class="variable">XML::Parser</span><span class="operator">;</span>
</pre>
<pre>
  <span class="variable">$p1</span> <span class="operator">=</span> <span class="variable">new</span> <span class="variable">XML::Parser</span><span class="operator">(</span><span class="string">Style</span> <span class="operator">=&gt;</span> <span class="string">'Debug'</span><span class="operator">);</span>
  <span class="variable">$p1</span><span class="operator">-&gt;</span><span class="variable">parsefile</span><span class="operator">(</span><span class="string">'REC-xml-19980210.xml'</span><span class="operator">);</span>
  <span class="variable">$p1</span><span class="operator">-&gt;</span><span class="variable">parse</span><span class="operator">(</span><span class="string">'&lt;foo id="me"&gt;Hello World&lt;/foo&gt;'</span><span class="operator">);</span>
</pre>
<pre>
  <span class="comment"># Alternative</span>
  <span class="variable">$p2</span> <span class="operator">=</span> <span class="variable">new</span> <span class="variable">XML::Parser</span><span class="operator">(</span><span class="string">Handlers</span> <span class="operator">=&gt;</span> <span class="operator">{</span><span class="string">Start</span> <span class="operator">=&gt;</span> <span class="operator">\&amp;</span><span class="variable">handle_start</span><span class="operator">,</span>
                                     <span class="string">End</span>   <span class="operator">=&gt;</span> <span class="operator">\&amp;</span><span class="variable">handle_end</span><span class="operator">,</span>
                                     <span class="string">Char</span>  <span class="operator">=&gt;</span> <span class="operator">\&amp;</span><span class="variable">handle_char</span><span class="operator">}</span><span class="operator">);</span>
  <span class="variable">$p2</span><span class="operator">-&gt;</span><span class="variable">parse</span><span class="operator">(</span><span class="variable">$socket</span><span class="operator">);</span>
</pre>
<pre>
  <span class="comment"># Another alternative</span>
  <span class="variable">$p3</span> <span class="operator">=</span> <span class="variable">new</span> <span class="variable">XML::Parser</span><span class="operator">(</span><span class="string">ErrorContext</span> <span class="operator">=&gt;</span> <span class="number">2</span><span class="operator">);</span>
</pre>
<pre>
  <span class="variable">$p3</span><span class="operator">-&gt;</span><span class="variable">setHandlers</span><span class="operator">(</span><span class="string">Char</span>    <span class="operator">=&gt;</span> <span class="operator">\&amp;</span><span class="variable">text</span><span class="operator">,</span>
                   <span class="string">Default</span> <span class="operator">=&gt;</span> <span class="operator">\&amp;</span><span class="variable">other</span><span class="operator">);</span>
</pre>
<pre>
  <span class="keyword">open</span><span class="operator">(</span><span class="variable">FOO</span><span class="operator">,</span> <span class="string">'xmlgenerator |'</span><span class="operator">);</span>
  <span class="variable">$p3</span><span class="operator">-&gt;</span><span class="variable">parse</span><span class="operator">(</span><span class="variable">*FOO</span><span class="operator">,</span> <span class="string">ProtocolEncoding</span> <span class="operator">=&gt;</span> <span class="string">'ISO-8859-1'</span><span class="operator">);</span>
  <span class="keyword">close</span><span class="operator">(</span><span class="variable">FOO</span><span class="operator">);</span>
</pre>
<pre>
  <span class="variable">$p3</span><span class="operator">-&gt;</span><span class="variable">parsefile</span><span class="operator">(</span><span class="string">'junk.xml'</span><span class="operator">,</span> <span class="string">ErrorContext</span> <span class="operator">=&gt;</span> <span class="number">3</span><span class="operator">);</span>
</pre>
<p>
</p>
<hr />
<h1><a name="description">DESCRIPTION</a></h1>
<p>This module provides ways to parse XML documents. It is built on top of
<a href="../../lib/XML/Parser/Expat.html">the XML::Parser::Expat manpage</a>, which is a lower level interface to James Clark's
expat library. Each call to one of the parsing methods creates a new
instance of XML::Parser::Expat which is then used to parse the document.
Expat options may be provided when the XML::Parser object is created.
These options are then passed on to the Expat object on each parse call.
They can also be given as extra arguments to the parse methods, in which
case they override options given at XML::Parser creation time.</p>
<p>The behavior of the parser is controlled either by <code>/Style</code> and/or
<code>/Handlers</code> options, or by <a href="#item_sethandlers">setHandlers</a> method. These all provide
mechanisms for XML::Parser to set the handlers needed by XML::Parser::Expat.
If neither <a href="#item_style"><code>Style</code></a> nor <a href="#item_handlers"><code>Handlers</code></a> are specified, then parsing just
checks the document for being well-formed.</p>
<p>When underlying handlers get called, they receive as their first parameter
the <em>Expat</em> object, not the Parser object.</p>
<p>
</p>
<hr />
<h1><a name="methods">METHODS</a></h1>
<dl>
<dt><strong><a name="item_new">new</a></strong>

<dd>
<p>This is a class method, the constructor for XML::Parser. Options are passed
as keyword value pairs. Recognized options are:</p>
</dd>
<ul>
<li><strong><a name="item_style">Style</a></strong>

<p>This option provides an easy way to create a given style of parser. The
built in styles are: <a href="#debug">Debug</a>, <a href="#subs">Subs</a>, <a href="#tree">Tree</a>, <a href="#objects">Objects</a>,
and <a href="#stream">Stream</a>. These are all defined in separate packages under
<code>XML::Parser::Style::*</code>, and you can find further documentation for
each style both below, and in those packages.</p>
<p>Custom styles can be provided by giving a full package name containing
at least one '::'. This package should then have subs defined for each
handler it wishes to have installed. See <a href="#styles">STYLES</a> below
for a discussion of each built in style.</p>
</li>
<li><strong><a name="item_handlers">Handlers</a></strong>

<p>When provided, this option should be an anonymous hash containing as
keys the type of handler and as values a sub reference to handle that
type of event. All the handlers get passed as their 1st parameter the
instance of expat that is parsing the document. Further details on
handlers can be found in <a href="#handlers">HANDLERS</a>. Any handler set here
overrides the corresponding handler set with the Style option.</p>
</li>
<li><strong><a name="item_pkg">Pkg</a></strong>

<p>Some styles will refer to subs defined in this package. If not provided,
it defaults to the package which called the constructor.</p>
</li>
<li><strong><a name="item_errorcontext">ErrorContext</a></strong>

<p>This is an Expat option. When this option is defined, errors are reported
in context. The value should be the number of lines to show on either side
of the line in which the error occurred.</p>
</li>
<li><strong><a name="item_protocolencoding">ProtocolEncoding</a></strong>

<p>This is an Expat option. This sets the protocol encoding name. It defaults
to none. The built-in encodings are: <code>UTF-8</code>, <code>ISO-8859-1</code>, <code>UTF-16</code>, and
<code>US-ASCII</code>. Other encodings may be used if they have encoding maps in one
of the directories in the @Encoding_Path list. Check <a href="#encodings">ENCODINGS</a> for
more information on encoding maps. Setting the protocol encoding overrides
any encoding in the XML declaration.</p>
</li>
<li><strong><a name="item_namespaces">Namespaces</a></strong>

<p>This is an Expat option. If this is set to a true value, then namespace
processing is done during the parse. See <a href="../../lib/XML/Parser/Expat.html#namespaces">Namespaces in the XML::Parser::Expat manpage</a>
for further discussion of namespace processing.</p>
</li>
<li><strong><a name="item_noexpand">NoExpand</a></strong>

<p>This is an Expat option. Normally, the parser will try to expand references
to entities defined in the internal subset. If this option is set to a true
value, and a default handler is also set, then the default handler will be
called when an entity reference is seen in text. This has no effect if a
default handler has not been registered, and it has no effect on the expansion

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -