Files
doc-en/reference/xml/functions/xml-set-processing-instruction-handler.xml
2023-10-05 00:29:27 +01:00

134 lines
3.5 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id="function.xml-set-processing-instruction-handler" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>xml_set_processing_instruction_handler</refname>
<refpurpose>
Set up processing instruction (PI) handler
</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>true</type><methodname>xml_set_processing_instruction_handler</methodname>
<methodparam><type>XMLParser</type><parameter>parser</parameter></methodparam>
<methodparam><type>callable</type><parameter>handler</parameter></methodparam>
</methodsynopsis>
<para>
Sets the processing instruction (PI) handler function for the XML parser
<parameter>parser</parameter>.
</para>
<para>
A processing instruction has the following format:
<programlisting role="xml">
<![CDATA[
<?target
data
?>
]]>
</programlisting>
</para>
<caution>
<para>
PHP code is delimited by the <literal>&lt;?php</literal>
processing instruction.
As such it is possible to have PHP code within an XML document.
However, the PI end tag (<literal>?&gt;</literal>) must not be part of
the data.
If a PI end tag exists as part of the embedded PHP code,
the rest of the PHP code and the "real" PI end tag, will be treated
as character data.
</para>
</caution>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
&xml.parser.param;
<varlistentry>
<term><parameter>handler</parameter></term>
<listitem>
&xml.handler.description;
<para>
The signature of the handler must be:
<methodsynopsis>
<type>void</type><methodname><replaceable>handler</replaceable></methodname>
<methodparam><type>XMLParser</type><parameter>parser</parameter></methodparam>
<methodparam><type>string</type><parameter>target</parameter></methodparam>
<methodparam><type>string</type><parameter>data</parameter></methodparam>
</methodsynopsis>
<variablelist>
&xml.handler.parser.param;
<varlistentry>
<term><parameter>target</parameter></term>
<listitem>
<simpara>
The processing instruction target.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>data</parameter></term>
<listitem>
<simpara>
The processing instruction data.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.true.always;
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
&xml.changelog.parser-param;
</tbody>
</tgroup>
</informaltable>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->