PHP 8.5.0 Alpha 1 available for testing

xml_parser_set_option

(PHP 4, PHP 5, PHP 7, PHP 8)

xml_parser_set_optionEstablece las opciones de un analizador XML

Descripción

xml_parser_set_option(XMLParser $parser, int $option, string|int|bool $value): bool

Establece las opciones de un analizador XML.

Parámetros

parser

Una referencia a un analizador XML.

option

La opción a modificar. Ver más abajo.

Las siguientes opciones están disponibles:

Opciones del analizador XML
Opción Tipo de datos Descripción
XML_OPTION_CASE_FOLDING bool Controla el manejo de la caja de las etiquetas de este analizador XML. Por omisión, está activado.
XML_OPTION_PARSE_HUGE bool Permite analizar documentos de más de 10 MB. Esta opción solo debe activarse si el tamaño del documento está limitado, ya que de lo contrario podría conducir a un ataque de denegación de servicio (DoS). Esta opción solo está disponible al usar libxml2.
XML_OPTION_SKIP_TAGSTART bool Especifica cuántos caracteres deben omitirse al inicio del nombre de la etiqueta.
XML_OPTION_SKIP_WHITE entier Omite o no los valores que contienen caracteres en blanco.
XML_OPTION_TARGET_ENCODING string Modifica la codificación de destino utilizada por este analizador XML. Por omisión, es la que se especificó al llamar a xml_parser_create(). Las codificaciones soportadas son ISO-8859-1, US-ASCII y UTF-8.

value

El nuevo valor de la opción.

Valores devueltos

Devuelve true en caso de éxito o false en caso de fallo.

Errores/Excepciones

Lanza una ValueError cuando se pasa un valor inválido a option.

Antes de PHP 8.0.0, pasar un valor inválido a option generaba una advertencia E_WARNING y hacía que la función devolviera el valor false.

Historial de cambios

Versión Descripción
8.4.0 Se añadió la opción XML_OPTION_PARSE_HUGE.
8.3.0 El parámetro value ahora también acepta valores booleanos. Las opciones XML_OPTION_CASE_FOLDING y XML_OPTION_SKIP_WHITE ahora son opciones booleanas.
8.0.0 parser expects an XMLParser instance now; previously, a valid xml resource was expected.
8.0.0 Ahora se lanza una excepción ValueError si la option es inválida.
add a note

User Contributed Notes 3 notes

up
2
www.thomaskoch.it
16 years ago
The option XML_OPTION_SKIP_WHITE has no effect in my PHP 5.2.6 (with expat-1.95.8-5). To skip cdata composed of white space only, simply check for that at the beginning of your cdata callback function:

<?php
function callback_cdata($parser, $cdata)
{
if(!
trim($cdata))
return;

// ... continue processing ...
}
?>
up
1
pupeno at pupeno dot com
22 years ago
XML is case sensitive, then, from my point of view, disabling case folding doesn't goes against xml 1.0 specifications but the contrary, disabling case folding allow us to distiguish between diferent cases of the same letter ('a' and 'A') which of XML are two diferent things.
From my point of view, disabling case folding is a good practice and I think it should be disabled by default.
More information on:
http://www.isacat.net/2001/xml/case.htm
and
http://www.w3.org/TR/REC-xml
Thank you.
up
0
j[no_spam_please] at [thx]jessepearson dot net
18 years ago
In the function below, you need to update two lines if you don't want php to throw warnings.

change these two:
$elements[$index]['attributes'] = $tag['attributes'];
$elements[$index]['content'] = $tag['value'];

to this:
$elements[$index]['attributes'] = empty($tag['attributes']) ? "" : $tag['attributes'];
$elements[$index]['content'] = empty($tag['value']) ? "" : $tag['value'];
To Top