Files
php-doc-ru/reference/xml/functions/xml-parse.xml
Sergey Panteleev 24413478ad docs(ru): Updated to English revision
git-svn-id: https://svn.php.net/repository/phpdoc/ru/trunk@351812 c90b9560-bf6c-de11-be94-00142212c4b1
2020-12-01 07:02:08 +00:00

148 lines
5.0 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 3db49ee0a331a657dd97b539a749f53d3965b593 Maintainer: tmn Status: ready -->
<!-- Reviewed: yes -->
<!-- $Revision$ -->
<refentry xml:id="function.xml-parse" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>xml_parse</refname>
<refpurpose>Запускает разбор XML-документа</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>int</type><methodname>xml_parse</methodname>
<methodparam><type>XMLParser</type><parameter>parser</parameter></methodparam>
<methodparam><type>string</type><parameter>data</parameter></methodparam>
<methodparam choice="opt"><type>bool</type><parameter>is_final</parameter><initializer>&false;</initializer></methodparam>
</methodsynopsis>
<para>
<function>xml_parse</function> разбирает XML-документ. Обработчики
запрограммированных событий вызываются столько раз, сколько необходимо.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>parser</parameter></term>
<listitem>
<para>
Ссылка на используемый XML-анализатор.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>data</parameter></term>
<listitem>
<para>
Часть данных для разбора. Документ можно разбирать по частям, вызывая
функцию <function>xml_parse</function> несколько раз с новыми данными,
пока аргумент <parameter>is_final</parameter> не будет установлен в
&true;, это сообщит анализатору, что разбирается последняя часть
документа.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>is_final</parameter></term>
<listitem>
<para>
Если задан и установлен в &true;, <parameter>data</parameter>
считается последней частью в этом разборе.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Возвращает 1 при успешном завершении, 0 в противном случае.
</para>
<para>
В случае неудачного разбора информацию об ошибках можно получить с помощью
функций <function>xml_get_error_code</function>,
<function>xml_error_string</function>,
<function>xml_get_current_line_number</function>,
<function>xml_get_current_column_number</function> и
<function>xml_get_current_byte_index</function>.
</para>
<note>
<para>
Некоторые ошибки (такие как ошибки при разборе сущностей) выдаются в
конце разбора и получить их можно
только когда <parameter>is_final</parameter> установлен в &true;.
</para>
</note>
</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>
<refsect1 role="examples">
&reftitle.examples;
<example xml:id="xml_parse.example.chunked">
<title>Разбор по частям больших XML-документов</title>
<para>
Этот пример показывает, как большие XML-документы могут быть прочитаны и разобраны по частям,
поэтому нет необходимости держать весь документ в памяти.
Обработка ошибок опущена для краткости.
</para>
<programlisting role="php">
<![CDATA[
<?php
$stream = fopen('large.xml', 'r');
$parser = xml_parser_create();
// установить обработчики
while (($data = fread($stream, 16384))) {
xml_parse($parser, $data); // разобрать текущую часть
}
xml_parse($parser, '', true); // завершить разбор
xml_parser_free($parser);
fclose($stream);
]]>
</programlisting>
</example>
</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
-->