xml_parser_set_option
(PHP 4, PHP 5, PHP 7)
xml_parser_set_option — Установка значения настройки XML анализатора
Описание
Устанавливает значение настройки XML анализатора.
Список параметров
-
parser
-
Ссылка на XML анализатор.
-
option
-
Какую настройку требуется установить. См. ниже.
Доступны следующие настройки:
Настройки XML анализатора Константа Тип данных Описание XML_OPTION_CASE_FOLDING
integer Требуется ли включить case-folding для этого анализатора. Включено по умолчанию. XML_OPTION_SKIP_TAGSTART
integer Задает количество символов с начала имени тэга, которые следует пропустить. XML_OPTION_SKIP_WHITE
integer Требуется ли пропускать значения, состоящие из пробелов. XML_OPTION_TARGET_ENCODING
string Устанавливает кодировку, которая будет использоваться XML анализатором. По умолчанию используется кодировка заданная при вызове функции xml_parser_create(). Поддерживаются кодировки ISO-8859-1, US-ASCII и UTF-8. -
value
-
Новое значение настройки.
Возвращаемые значения
Функция возвращает FALSE
, если parser
ссылается
на недопустимый анализатор или если настройка не может быть установлена.
В противном случае устанавливается новое значение настройки и возвращается
значение TRUE
.
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Обработка XML
- XML-анализатор
- utf8_decode
- utf8_encode
- xml_error_string
- xml_get_current_byte_index
- xml_get_current_column_number
- xml_get_current_line_number
- xml_get_error_code
- xml_parse_into_struct
- xml_parse
- xml_parser_create_ns
- xml_parser_create
- xml_parser_free
- xml_parser_get_option
- xml_parser_set_option
- xml_set_character_data_handler
- xml_set_default_handler
- xml_set_element_handler
- xml_set_end_namespace_decl_handler
- xml_set_external_entity_ref_handler
- xml_set_notation_decl_handler
- xml_set_object
- xml_set_processing_instruction_handler
- xml_set_start_namespace_decl_handler
- xml_set_unparsed_entity_decl_handler
Коментарии
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.
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'];
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 ...
}
?>