Files
archived-doc-pt-br/reference/xml/functions/xml-parse.xml
Leonardo Lara Rodrigues b8e6f6b888 sync with en rev
2025-10-21 09:03:14 -03:00

149 lines
4.3 KiB
XML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. 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: b47e4bea197126359815c5e43403c4b77a0aaaa7 Maintainer: leonardolara Status: ready --><!-- CREDITS: fernandowobeto -->
<refentry xml:id="function.xml-parse" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>xml_parse</refname>
<refpurpose>Inicia análise de um documento 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> analisa um documento XML. Os manipuladores para
os eventos configurados são chamados quantas vezes forem necessárias.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>parser</parameter></term>
<listitem>
<para>
Uma referência ao analisador XML a ser usado.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>data</parameter></term>
<listitem>
<para>
Bloco de dados a serem analisados. Um documento pode ser analisado em partes
chamando <function>xml_parse</function> várias vezes com novos dados,
desde que o parâmetro <parameter>is_final</parameter> esteja definido e
&true; quando os últimos dados forem analisados.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>is_final</parameter></term>
<listitem>
<para>
Se definido e &true;, <parameter>data</parameter> é o último pedaço de
dados enviado nesta análise.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Retorna 1 em caso de sucesso ou 0 em caso de falha.
</para>
<para>
Para análises malsucedidas, as informações de erro podem ser recuperadas com
<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> e
<function>xml_get_current_byte_index</function>.
</para>
<note>
<para>
Alguns erros (como erros de entidade) são relatados no final dos dados, portanto, somente se
<parameter>is_final</parameter> estiver definido e &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>Análise em blocos de documentos XML grandes</title>
<para>
Este exemplo mostra como documentos XML grandes podem ser lidos e analisados em
pedaços, para que não seja necessário manter o documento inteiro na memória.
O tratamento de erros é omitido por questões de brevidade.
</para>
<programlisting role="php">
<![CDATA[
<?php
$stream = fopen('examples/book-simple.xml', 'r');
$parser = xml_parser_create();
xml_set_element_handler(
$parser,
function($parser, $name, $attributes) { echo $name, PHP_EOL; },
function($parser, $name) { echo $name, PHP_EOL; }
);
while (($data = fread($stream, 16384))) {
xml_parse($parser, $data); // analisa o bloco atual
}
xml_parse($parser, '', true); // finaliza a análise
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
-->