Что такое код xml_set_element_handler


CIV. Функции разборщика XML

XML (eXtensible Markup Language) это формат данных для обмена структурированными документами в Web. Это стандарт, созданный консорциумом World Wide Web consortium (W3C). Информация о XML и сопутствующих технологиях находится на сайте http://www.w3.org/XML/

Установка

Это расширение использует библиотеку expat, которую можно найти на http://www.jclark.com/xml/. Makefile, который поставляется вместе с expat, не строит библиотеку по умолчанию. Вы можете использовать такое make-правило:

Заметьте, что при использовании Apache-1.3.7 или новее у вас уже имеется соответствующая библиотека expat. Просто сконфигурируйте PHP с использованием —with-xml (без дополнительного пути), и он будет автоматически использовать библиотеку expat, встроенную в Apache.

В UNIX — запустите configure с опцией —with-xml . Библиотека expat должна быть установлена в таком месте, где компилятор сможет её найти. Если вы компилируете PHP как модуль для Apache 1.3.9 или новее, PHP будет автоматически использовать связанную библиотеку expat из Apache. Вам может понадобиться установка флагов CPPFLAGS и LDFLAGS в вашем окружении до запуска configure , если вы установили expat как-то экзотично.

Постройте PHP. Tada! Вот и всё.

Об этом расширении

Это расширение PHP реализует поддержку expat James’а Clark’а в PHP. Этот набор утилит позволяет разбирать, но не проверять, XML-документы. Он поддерживает три исходные кодировки символов, также предоставляемые PHP: US-ASCII , ISO-8859-1 и UTF-8 . UTF-16 не поддерживается.

Это расширение позволяет создавать XML-разборщики и определять обработчики различных XML-событий. Каждый XML-разборщик также имеет несколько параметров, которые вы можете настроить.

Вот имеющиеся XML-обработчики:

Таблица 1. Поддерживаемые XML-обработчики

Функция PHP для установки обработчика Описание события
xml_set_element_handler() События элементов возникают, когда XML-разборщик обнаруживает начальный или конечный тэги. Для начальных и конечных тэгов имеются отдельные обработчики.
xml_set_character_data_handler() Символьные данные это, ориентировочно, всё неразмеченное содержимое XML-документов, включая пробелы между тэгами. Заметьте, что XML-разборщик не добавляет и не удаляет пробелы, это обязанность приложения (ваша) — решить, имеет ли пробел значение.
xml_set_processing_instruction_handler() PHP-программисты должны быть уже знакомы с инструкциями процессинга/processing instructions (PI). это инструкция процессинга, где php это вызванная «цель PI». Их обработка зависит от приложения, за исключением того, что все цели PI, начинающиеся с «XML», зарезервированы.
xml_set_default_handler() То, что не выполняется другим обработчиком, выполняет обработчик по умолчанию. В нём вы будете делать такие вещи как объявления типов XML и документа.
xml_set_unparsed_entity_decl_handler() Этот обработчик будет вызываться для объявления неразбираемого/unparsed (NDATA) экземпляра.
xml_set_notation_decl_handler() Этот обработчик вызывается для объявления нотации.
xml_set_external_entity_ref_handler() Этот обработчик вызывается, когда XML-разборщик находит ссылку на внешний разбираемый общий экземпляр. Это может быть ссылка на файл или URL, например. См. демонстрацию в примере внешнего экземпляра.

Выравнивание регистра/Case Folding

Функции обработчиков элементов могут получать имена своих элементов case-folded . Case-folding определяется стандартом XML как «процесс, применяемый к последовательности символов, когда те из них, которые идентифицируются как non-uppercase/не в верхнем регистре, заменяются своими эквивалентами верхнего регистра». Иначе говоря, если речь идёт о XML, case-folding означает перевод в верхний регистр.

По умолчанию все имена элементов, передаваемые функциям обработчиков, передаются с выравниванием регистра. Это поведение может запрашиваться и контролироваться XML-разборщиком с помощью функций xml_parser_get_option() и xml_parser_set_option() , соответственно.

Следующие константы определены для кодов ошибок XML (как возвращаемые xml_parse() ):

XML_ERROR_NONE
XML_ERROR_NO_MEMORY
XML_ERROR_SYNTAX
XML_ERROR_NO_ELEMENTS
XML_ERROR_INVALID_TOKEN
XML_ERROR_UNCLOSED_TOKEN
XML_ERROR_PARTIAL_CHAR
XML_ERROR_TAG_MISMATCH
XML_ERROR_DUPLICATE_ATTRIBUTE
XML_ERROR_JUNK_AFTER_DOC_ELEMENT
XML_ERROR_PARAM_ENTITY_REF
XML_ERROR_UNDEFINED_ENTITY
XML_ERROR_RECURSIVE_ENTITY_REF
XML_ERROR_ASYNC_ENTITY
XML_ERROR_BAD_CHAR_REF
XML_ERROR_BINARY_ENTITY_REF
XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF
XML_ERROR_MISPLACED_XML_PI
XML_ERROR_UNKNOWN_ENCODING
XML_ERROR_INCORRECT_ENCODING
XML_ERROR_UNCLOSED_CDATA_SECTION
XML_ERROR_EXTERNAL_ENTITY_HANDLING

XML-расширение РНР поддерживает набор символов Unicode через различные кодировки символов. Есть два типа кодировок символов, кодировка источника и кодировка цели. Внутреннее представление документа в PHP всегда кодируется в UTF-8 .

Кодировка источника делается, когда XML-документ разбирается. После создания XML-разборщика кодировка источника может быть специфицирована (эта кодировка не может быть изменена позднее, в период существования XML-разборщика). Поддерживаются кодировки источника ISO-8859-1 , US-ASCII и UTF-8 . Первые две это однобайтные кодировки, то есть каждый символ представлен одним байтом. UTF-8 может кодировать символы, составленные из переменного количества бит (до 21) в 1-4 байтах. По умолчанию кодировка источника в РНР — ISO-8859-1 .

Целевая кодировка выполняется, когда PHP передаёт данные функциям XML-обработчиков. Когда XML-обработчик создаётся, устанавливается та же самая целевая кодировка, что и исходная кодировка, но она может быть изменена в любой момент. Целевая кодировка влияет на символьные данные и на имена тэгов и цели инструкций процессинга.

Если XML-разборщик находит символы вне диапазона представления исходной кодировки, он возвратит ошибку.

Если PHP находит в разбираемом XML-документе символы, которые не могут быть представлены в избранной целевой кодировке, проблемные символы будут «понижены в звании». В настоящее время это означает, что такие символы заменяются знаком вопроса.

Вот примеры скриптов PHP, разбирающих XML-документы.

Пример структуры XML-элементов

В первом примере отображается структура стартовых элементов документа с отступом.

Пример 1. Показ структуры XML-элементов

Пример Отображения XML-тэгов

Пример 2. Отображение XML в HTML

Этот пример отображает тэги XML-документа непосредственно в тэги HTML. Элементы, не найденные в «массиве отображения», игнорируются. Конечно, этот пример будет работать только со специфическим типом XML-документов.

Пример внешнего экземпляра XML

Этот пример разъясняет XML-код. Он показывает, как использовать обработчик ссылки на внешний экземпляр для включения и разбора других документов, а также то, как можно обработать PI, и способ определения «trust/доверия» PI, содержащим код.

Что такое код xml_set_element_handler

(PHP 3>= 3.0.6, PHP 4)

xml_set_element_handler — настраивает обработчики стартового и конечного элементов.

Описание

Устанавливает функции обработчиков для XML-разборщика parser .
start_element_handler и end_element_handler это строки, содержащие имена функций, которые обязаны существовать в при вызове xml_parse() для parser .

Функция start_element_handler обязана принимать три параметра: start_element_handler (resource parser, string name, array attribs) parser


Это ссылка на XML-разборщик, вызывающий обработчик.

Содержит имя элемента, для которого вызывается обработчик. Если выравнивание регистра включено для данного разработчика, имя элемента будет в верхнем регистре.

Содержит ассоциативный массив с атрибутами элемента (если имеются). Ключами этого массива являются имена атрибутов, значения — значения атрибутов. Имена атрибутов получают выравнивание регистра с теми же критериями, что и имена элементов. Регистр значений атрибутов не выравнивается.

Оригинальный порядок атрибутов можно запросить, пройдя по attribs нормальным способом с помощью each() . Первый ключ массива — первый атрибут, и так далее.

Функция end_element_handler обязана принимать два параметра: end_element_handler (resource parser, string name) parser

Это ссылка на XML-разборщик, вызывающий обработчик.

Содержит имя элемента, для которого вызывается обработчик. Если выравнивание регистра включено для этого разборщика, имя элемента будет в верхнем регистре.

Если функция обработчика установлена как пустая строка, или FALSE , обработчик отключается.

TRUE возвращается, если обработчики настроены, а FALSE , если parser не является разборщиком.

Примечание: вместо имени функции может быть предоставлен также массив, содержащий ссылку на объект и имя метода.


Назад Оглавление Вперёд
xml_set_default_handler Вверх xml_set_end_namespace_decl_handler

Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:

RSS ё®ґх±в

function startElement ( $parser , $name , $attribs )
<
global $currentTag , $currentAttribs ;
$currentTag = $name ;

$currentAttribs = $attribs ;
switch ( $name ) <

function endElement ( $parser , $name )
<
global $currentTag ;
switch ( $name ) <
default:
echo( «
&lt/$name&gt

function characterData ( $parser , $data )
<
global $currentTag ;
switch ( $currentTag ) <
case «link» :
echo( » \» $data \» >$data \n » );
break;
case «title» :
echo( «title : $data» );
break;
default:
echo( $data );
break;
>
>

$caseFold = xml_parser_get_option ( $xmlParser ,
XML_OPTION_CASE_FOLDING );

$targetEncoding = xml_parser_get_option ( $xmlParser ,
XML_OPTION_TARGET_ENCODING );

if ( $caseFold == 1 ) <
xml_parser_set_option ( $xmlParser , XML_OPTION_CASE_FOLDING , false );
>

xml_set_element_handler ( $xmlParser , «startElement» , «endElement» );
xml_set_character_data_handler ( $xmlParser , «characterData» );

if (!( $fp = fopen ( $file , «r» ))) <
die( «Cannot open XML data file: $file» );
>

xml_set_element_handler

xml_set_element_handler — Set up start and end element handlers

Описание

Sets the element handler functions for the XML parser. start_element_handler and end_element_handler are strings containing the names of functions that must exist when xml_parse() is called for parser.

Список параметров

A reference to the XML parser to set up start and end element handler functions.

The function named by start_element_handler must accept three parameters:

Замечание: В качестве аргумента вместо имени функции может быть передан массив, содержащий ссылку на объект и имя метода.

The function named by end_element_handler must accept two parameters:

If a handler function is set to an empty string, or FALSE, the handler in question is disabled.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

НОВОСТИ ФОРУМА
Рыцари теории эфира
01.10.2020 — 05:20: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ — Upbringing, Inlightening, Education ->
[center][Youtube]69vJGqDENq4[/Youtube][/center]
[center]14:36[/center]
Osievskii Global News
29 сент. Отправлено 05:20, 01.10.2020 г.’ target=_top>Просвещение от Вячеслава Осиевского — Карим_Хайдаров.
30.09.2020 — 12:51: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ — Upbringing, Inlightening, Education ->
[center][Ok]376309070[/Ok][/center]
[center]11:03[/center] Отправлено 12:51, 30.09.2020 г.’ target=_top>Просвещение от Дэйвида Дюка — Карим_Хайдаров.
30.09.2020 — 11:53: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ — Upbringing, Inlightening, Education ->
[center][Youtube]VVQv1EzDTtY[/Youtube][/center]
[center]10:43[/center]

интервью Раввина Борода https://cursorinfo.co.il/all-news/rav.
мой телеграмм https://t.me/peshekhonovandrei
мой твиттер https://twitter.com/Andrey54708595
мой инстаграм https://www.instagram.com/andreipeshekhonow/

[b]Мой комментарий:
Андрей спрашивает: Краснодарская синагога — это что, военный объект?
— Да, военный, потому что имеет разрешение от Росатома на манипуляции с радиоактивными веществами, а также иными веществами, опасными в отношении массового поражения. Именно это было выявлено группой краснодарцев во главе с Мариной Мелиховой.


[center][Youtube]CLegyQkMkyw[/Youtube][/center]
[center]10:22 [/center]

Доминико Риккарди: Россию ждёт страшное будущее (хотелки ЦРУ):
https://tainy.net/22686-predskazaniya-dominika-rikardi-o-budushhem-rossii-sdelannye-v-2000-godu.html

Завещание Алена Даллеса / Разработка ЦРУ (запрещено к ознакомлению Роскомнадзором = Жид-над-рус-надзором)
http://av-inf.blogspot.com/2013/12/dalles.html

[center][b]Сон разума народа России [/center]

[center][Youtube]CLegyQkMkyw[/Youtube][/center]
[center]10:22 [/center]

Доминико Риккарди: Россию ждёт страшное будущее (хотелки ЦРУ):
https://tainy.net/22686-predskazaniya-dominika-rikardi-o-budushhem-rossii-sdelannye-v-2000-godu.html

Завещание Алена Даллеса / Разработка ЦРУ (запрещено к ознакомлению Роскомнадзором = Жид-над-рус-надзором)
http://av-inf.blogspot.com/2013/12/dalles.html

[center][b]Сон разума народа России [/center]

Что такое код xml_set_element_handler

(PHP 3>= 3.0.6, PHP 4)

xml_set_element_handler — настраивает обработчики стартового и конечного элементов.

Описание

Устанавливает функции обработчиков для XML-разборщика parser .
start_element_handler и end_element_handler это строки, содержащие имена функций, которые обязаны существовать в при вызове xml_parse() для parser .

Функция start_element_handler обязана принимать три параметра: start_element_handler (resource parser, string name, array attribs) parser

Это ссылка на XML-разборщик, вызывающий обработчик.

Содержит имя элемента, для которого вызывается обработчик. Если выравнивание регистра включено для данного разработчика, имя элемента будет в верхнем регистре.

Содержит ассоциативный массив с атрибутами элемента (если имеются). Ключами этого массива являются имена атрибутов, значения — значения атрибутов. Имена атрибутов получают выравнивание регистра с теми же критериями, что и имена элементов. Регистр значений атрибутов не выравнивается.

Оригинальный порядок атрибутов можно запросить, пройдя по attribs нормальным способом с помощью each() . Первый ключ массива — первый атрибут, и так далее.

Функция end_element_handler обязана принимать два параметра: end_element_handler (resource parser, string name) parser

Это ссылка на XML-разборщик, вызывающий обработчик.

Содержит имя элемента, для которого вызывается обработчик. Если выравнивание регистра включено для этого разборщика, имя элемента будет в верхнем регистре.

Если функция обработчика установлена как пустая строка, или FALSE , обработчик отключается.

TRUE возвращается, если обработчики настроены, а FALSE , если parser не является разборщиком.

Примечание: вместо имени функции может быть предоставлен также массив, содержащий ссылку на объект и имя метода.

Что такое код xml_set_element_handler

(PHP 3>= 3.0.6, PHP 4)

xml_set_element_handler — настраивает обработчики стартового и конечного элементов.

Описание

Устанавливает функции обработчиков для XML-разборщика parser .
start_element_handler и end_element_handler это строки, содержащие имена функций, которые обязаны существовать в при вызове xml_parse() для parser .

Функция start_element_handler обязана принимать три параметра: start_element_handler (resource parser, string name, array attribs) parser

Это ссылка на XML-разборщик, вызывающий обработчик.

Содержит имя элемента, для которого вызывается обработчик. Если выравнивание регистра включено для данного разработчика, имя элемента будет в верхнем регистре.

Содержит ассоциативный массив с атрибутами элемента (если имеются). Ключами этого массива являются имена атрибутов, значения — значения атрибутов. Имена атрибутов получают выравнивание регистра с теми же критериями, что и имена элементов. Регистр значений атрибутов не выравнивается.

Оригинальный порядок атрибутов можно запросить, пройдя по attribs нормальным способом с помощью each() . Первый ключ массива — первый атрибут, и так далее.

Функция end_element_handler обязана принимать два параметра: end_element_handler (resource parser, string name) parser

Это ссылка на XML-разборщик, вызывающий обработчик.

Содержит имя элемента, для которого вызывается обработчик. Если выравнивание регистра включено для этого разборщика, имя элемента будет в верхнем регистре.


Если функция обработчика установлена как пустая строка, или FALSE , обработчик отключается.

TRUE возвращается, если обработчики настроены, а FALSE , если parser не является разборщиком.

Примечание: вместо имени функции может быть предоставлен также массив, содержащий ссылку на объект и имя метода.

Xml Element Attribute Класс

Определение

Указывает, что открытое поле или свойство представляет XML-элемент, когда XmlSerializer сериализует или десериализует объект, содержащий его. Indicates that a public field or property represents an XML element when the XmlSerializer serializes or deserializes the object that contains it.

Примеры

В следующем примере сериализуется класс с именем Group и XmlElementAttribute применяется к нескольким его членам. The following example serializes a class named Group and applies the XmlElementAttribute to several of its members. Поле с именем Employees возвращает Employee массив объектов. The field named Employees returns an array of Employee objects. В этом случае XmlElementAttribute указывает, что результирующий XML не будет вложенным (это поведение по умолчанию для элементов в массиве). In this case, the XmlElementAttribute specifies that the resulting XML will not be nested (which is the default behavior of items in an array).

Комментарии

Объект принадлежит семейству атрибутов, который управляет тем XmlSerializer , как сериализует или десериализует объект. XmlElementAttribute The XmlElementAttribute belongs to a family of attributes that controls how the XmlSerializer serializes or deserializes an object. Полный список схожих атрибутов см. в разделе атрибуты, управляющие СЕРИАЛИЗАЦИЕЙ XML. For a complete list of similar attributes, see Attributes That Control XML Serialization.

XML-документ обычно содержит XML-элементы, каждый из которых состоит из трех частей: открывающий тег с возможными атрибутами, закрывающий тег и данные между тегами. An XML document usually contains XML elements, each of which consists of three parts: an opening tag with possible attributes, a closing tag, and the data between the tags. XML-теги могут быть вложенными, то есть данные между тегами также могут быть XML-элементами. XML tags can be nested—that is, the data between tags can also be XML elements. Эта емкость одного элемента, охватывающего другой элемент, позволяет документу содержать иерархии данных. This capacity of one element to enclose another allows the document to contain hierarchies of data. Элемент XML может также включать атрибуты. An XML element can also include attributes.

XmlElementAttribute Применение к общим полям или открытым свойствам чтения и записи для управления характеристиками XML-элементов, таких как имя элемента и пространство имен. Apply the XmlElementAttribute to public fields or public read/write properties to control characteristics of the XML elements such as the element name and namespace.

XmlElementAttribute Можно применить несколько раз к полю, возвращающему массив объектов. The XmlElementAttribute can be applied multiple times to a field that returns an array of objects. Целью этого является указание (через Type свойство) различных типов, которые могут быть вставлены в массив. The purpose of this is to specify (through the Type property) different types that can be inserted into the array. Например, массив в следующем C# коде принимает как строки, так и целые числа. For example, the array in the following C# code accepts both strings and integers.

В результате XML-код может выглядеть следующим образом. This results in XML that might resemble the following.

Обратите внимание, что при XmlElementAttribute многократном применении без ElementName указания значения свойства элементы именуются по типу допустимых объектов. Note that when you apply the XmlElementAttribute multiple times without specifying an ElementName property value, the elements are named after the type of the acceptable objects.

Если применить XmlElementAttribute к полю или свойству, которое возвращает массив, элементы массива кодируются как последовательность XML-элементов. If you apply the XmlElementAttribute to a field or property that returns an array, the items in the array are encoded as a sequence of XML elements.

В отличие от XmlElementAttribute того, что не применяется к такому полю или свойству, элементы массива кодируются как последовательность элементов, вложенных в элемент с именем после поля или свойства. In contrast if an XmlElementAttribute is not applied to such a field or property, the items in the array are encoded as a sequence of elements, nested under an element named after the field or property. (Используйте XmlArrayAttribute атрибуты и XmlArrayItemAttribute для управления способом сериализации массива.) (Use the XmlArrayAttribute and XmlArrayItemAttribute attributes to control how an array is serialized.)

Можно задать Type свойство, чтобы указать тип, производный от типа исходного поля или свойства, то есть поля или свойства, к которым вы XmlElementAttributeприменили. You can set the Type property to specify a type that is derived from the type of the original field or property—that is, the field or property to which you have applied the XmlElementAttribute.

Если поле или свойство возвращает ArrayList, можно применить несколько экземпляров XmlElementAttribute объекта к элементу. If a field or property returns an ArrayList, you can apply multiple instances of the XmlElementAttribute to the member. Для каждого экземпляра присвойте Type свойству тип объекта, который может быть вставлен в массив. For each instance, set the Type property to a type of object that can be inserted into the array.

Дополнительные сведения об использовании атрибутов см. в разделе атрибуты. For more information about using attributes, see Attributes.

Вы можете использовать слово XmlElement в коде, а не дольше. XmlElementAttribute You can use the word XmlElement in your code instead of the longer XmlElementAttribute.

Конструкторы

Инициализирует новый экземпляр класса XmlElementAttribute. Initializes a new instance of the XmlElementAttribute class.

Инициализация нового экземпляра класса XmlElementAttribute и указывает имя элемента XML. Initializes a new instance of the XmlElementAttribute class and specifies the name of the XML element.

Инициализирует новый экземпляр класса XmlElementAttribute и указывает имя XML-элемента и производного типа для члена, к которому применяется XmlElementAttribute. Initializes a new instance of the XmlElementAttribute and specifies the name of the XML element and a derived type for the member to which the XmlElementAttribute is applied. Данный тип члена используйте при сериализации XmlSerializer содержащего его объекта. This member type is used when the XmlSerializer serializes the object that contains it.

Инициализирует новый экземпляр класса XmlElementAttribute и указывает тип для члена, к которому применяется XmlElementAttribute. Initializes a new instance of the XmlElementAttribute class and specifies a type for the member to which the XmlElementAttribute is applied. Данный тип используется при сериализации или десериализации XmlSerializer содержащего его объекта. This type is used by the XmlSerializer when serializing or deserializing object that contains it.

Свойства

Получает или задает тип данных определения схемы XML (XSD), сгенерированного XmlSerializer элемента XML. Gets or sets the XML Schema definition (XSD) data type of the XML element generated by the XmlSerializer.

Получает или задает имя созданного XML-элемента Gets or sets the name of the generated XML element.

Получает или задает значение, указывающее квалифицирован ли элемент. Gets or sets a value that indicates whether the element is qualified.

Получает или задает значение, которое указывает, должен ли XmlSerializer сериализовать члена, имеющего значение null , в качестве пустого тега с атрибутом xsi:nil со значением true . Gets or sets a value that indicates whether the XmlSerializer must serialize a member that is set to null as an empty tag with the xsi:nil attribute set to true .

Получает или задает пространство имен, присвоенное элементу XML, получаемому при сериализации класса. Gets or sets the namespace assigned to the XML element that results when the class is serialized.

Возвращает или задает явный порядок сериализации или десериализации элементов. Gets or sets the explicit order in which the elements are serialized or deserialized.

Получает или задает тип объекта, используемый для представления элемента XML. Gets or sets the object type used to represent the XML element.

При реализации в производном классе возвращает уникальный идентификатор для этого Attribute. When implemented in a derived class, gets a unique identifier for this Attribute.

(Унаследовано от Attribute)

Методы


Возвращает значение, показывающее, равен ли экземпляр указанному объекту. Returns a value that indicates whether this instance is equal to a specified object.

(Унаследовано от Attribute) GetHashCode()

Возвращает хэш-код данного экземпляра. Returns the hash code for this instance.

(Унаследовано от Attribute) GetType()

Возвращает объект Type для текущего экземпляра. Gets the Type of the current instance.

(Унаследовано от Object) IsDefaultAttribute()

При переопределении в производном классе указывает, является ли значение этого экземпляра значением по умолчанию для производного класса. When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Унаследовано от Attribute) Match(Object)

При переопределении в производном классе возвращает значение, указывающее, является ли этот экземпляр равным заданному объекту. When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Унаследовано от Attribute) MemberwiseClone()

Создает неполную копию текущего объекта Object. Creates a shallow copy of the current Object.

(Унаследовано от Object) ToString()

Возвращает строку, представляющую текущий объект. Returns a string that represents the current object.

(Унаследовано от Object)

Явные реализации интерфейса

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации. Maps a set of names to a corresponding set of dispatch identifiers.

(Унаследовано от Attribute) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Возвращает сведения о типе объекта, которые можно использовать для получения сведений о типе интерфейса. Retrieves the type information for an object, which can be used to get the type information for an interface.

(Унаследовано от Attribute) _Attribute.GetTypeInfoCount(UInt32)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1). Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Унаследовано от Attribute) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Предоставляет доступ к открытым свойствам и методам объекта. Provides access to properties and methods exposed by an object.

CIV. Функции разборщика XML

XML (eXtensible Markup Language) это формат данных для обмена структурированными документами в Web. Это стандарт, созданный консорциумом World Wide Web consortium (W3C). Информация о XML и сопутствующих технологиях находится на сайте http://www.w3.org/XML/

Установка

Это расширение использует библиотеку expat, которую можно найти на http://www.jclark.com/xml/. Makefile, который поставляется вместе с expat, не строит библиотеку по умолчанию. Вы можете использовать такое make-правило:

Заметьте, что при использовании Apache-1.3.7 или новее у вас уже имеется соответствующая библиотека expat. Просто сконфигурируйте PHP с использованием —with-xml (без дополнительного пути), и он будет автоматически использовать библиотеку expat, встроенную в Apache.

В UNIX — запустите configure с опцией —with-xml . Библиотека expat должна быть установлена в таком месте, где компилятор сможет её найти. Если вы компилируете PHP как модуль для Apache 1.3.9 или новее, PHP будет автоматически использовать связанную библиотеку expat из Apache. Вам может понадобиться установка флагов CPPFLAGS и LDFLAGS в вашем окружении до запуска configure , если вы установили expat как-то экзотично.

Постройте PHP. Tada! Вот и всё.

Об этом расширении

Это расширение PHP реализует поддержку expat James’а Clark’а в PHP. Этот набор утилит позволяет разбирать, но не проверять, XML-документы. Он поддерживает три исходные кодировки символов, также предоставляемые PHP: US-ASCII , ISO-8859-1 и UTF-8 . UTF-16 не поддерживается.

Это расширение позволяет создавать XML-разборщики и определять обработчики различных XML-событий. Каждый XML-разборщик также имеет несколько параметров, которые вы можете настроить.

Вот имеющиеся XML-обработчики:

Таблица 1. Поддерживаемые XML-обработчики

Функция PHP для установки обработчика Описание события
xml_set_element_handler() События элементов возникают, когда XML-разборщик обнаруживает начальный или конечный тэги. Для начальных и конечных тэгов имеются отдельные обработчики.
xml_set_character_data_handler() Символьные данные это, ориентировочно, всё неразмеченное содержимое XML-документов, включая пробелы между тэгами. Заметьте, что XML-разборщик не добавляет и не удаляет пробелы, это обязанность приложения (ваша) — решить, имеет ли пробел значение.
xml_set_processing_instruction_handler() PHP-программисты должны быть уже знакомы с инструкциями процессинга/processing instructions (PI). это инструкция процессинга, где php это вызванная «цель PI». Их обработка зависит от приложения, за исключением того, что все цели PI, начинающиеся с «XML», зарезервированы.
xml_set_default_handler() То, что не выполняется другим обработчиком, выполняет обработчик по умолчанию. В нём вы будете делать такие вещи как объявления типов XML и документа.
xml_set_unparsed_entity_decl_handler() Этот обработчик будет вызываться для объявления неразбираемого/unparsed (NDATA) экземпляра.
xml_set_notation_decl_handler() Этот обработчик вызывается для объявления нотации.
xml_set_external_entity_ref_handler() Этот обработчик вызывается, когда XML-разборщик находит ссылку на внешний разбираемый общий экземпляр. Это может быть ссылка на файл или URL, например. См. демонстрацию в примере внешнего экземпляра.

Выравнивание регистра/Case Folding

Функции обработчиков элементов могут получать имена своих элементов case-folded . Case-folding определяется стандартом XML как «процесс, применяемый к последовательности символов, когда те из них, которые идентифицируются как non-uppercase/не в верхнем регистре, заменяются своими эквивалентами верхнего регистра». Иначе говоря, если речь идёт о XML, case-folding означает перевод в верхний регистр.


По умолчанию все имена элементов, передаваемые функциям обработчиков, передаются с выравниванием регистра. Это поведение может запрашиваться и контролироваться XML-разборщиком с помощью функций xml_parser_get_option() и xml_parser_set_option() , соответственно.

Следующие константы определены для кодов ошибок XML (как возвращаемые xml_parse() ):

XML_ERROR_NONE
XML_ERROR_NO_MEMORY
XML_ERROR_SYNTAX
XML_ERROR_NO_ELEMENTS
XML_ERROR_INVALID_TOKEN
XML_ERROR_UNCLOSED_TOKEN
XML_ERROR_PARTIAL_CHAR
XML_ERROR_TAG_MISMATCH
XML_ERROR_DUPLICATE_ATTRIBUTE
XML_ERROR_JUNK_AFTER_DOC_ELEMENT
XML_ERROR_PARAM_ENTITY_REF
XML_ERROR_UNDEFINED_ENTITY
XML_ERROR_RECURSIVE_ENTITY_REF
XML_ERROR_ASYNC_ENTITY
XML_ERROR_BAD_CHAR_REF
XML_ERROR_BINARY_ENTITY_REF
XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF
XML_ERROR_MISPLACED_XML_PI
XML_ERROR_UNKNOWN_ENCODING
XML_ERROR_INCORRECT_ENCODING
XML_ERROR_UNCLOSED_CDATA_SECTION
XML_ERROR_EXTERNAL_ENTITY_HANDLING

XML-расширение РНР поддерживает набор символов Unicode через различные кодировки символов. Есть два типа кодировок символов, кодировка источника и кодировка цели. Внутреннее представление документа в PHP всегда кодируется в UTF-8 .

Кодировка источника делается, когда XML-документ разбирается. После создания XML-разборщика кодировка источника может быть специфицирована (эта кодировка не может быть изменена позднее, в период существования XML-разборщика). Поддерживаются кодировки источника ISO-8859-1 , US-ASCII и UTF-8 . Первые две это однобайтные кодировки, то есть каждый символ представлен одним байтом. UTF-8 может кодировать символы, составленные из переменного количества бит (до 21) в 1-4 байтах. По умолчанию кодировка источника в РНР — ISO-8859-1 .

Целевая кодировка выполняется, когда PHP передаёт данные функциям XML-обработчиков. Когда XML-обработчик создаётся, устанавливается та же самая целевая кодировка, что и исходная кодировка, но она может быть изменена в любой момент. Целевая кодировка влияет на символьные данные и на имена тэгов и цели инструкций процессинга.

Если XML-разборщик находит символы вне диапазона представления исходной кодировки, он возвратит ошибку.

Если PHP находит в разбираемом XML-документе символы, которые не могут быть представлены в избранной целевой кодировке, проблемные символы будут «понижены в звании». В настоящее время это означает, что такие символы заменяются знаком вопроса.

Вот примеры скриптов PHP, разбирающих XML-документы.

Пример структуры XML-элементов

В первом примере отображается структура стартовых элементов документа с отступом.

Пример 1. Показ структуры XML-элементов

Пример Отображения XML-тэгов

Пример 2. Отображение XML в HTML

Этот пример отображает тэги XML-документа непосредственно в тэги HTML. Элементы, не найденные в «массиве отображения», игнорируются. Конечно, этот пример будет работать только со специфическим типом XML-документов.

Пример внешнего экземпляра XML

Этот пример разъясняет XML-код. Он показывает, как использовать обработчик ссылки на внешний экземпляр для включения и разбора других документов, а также то, как можно обработать PI, и способ определения «trust/доверия» PI, содержащим код.

PHP xml_set_element_handler() Function

Определение и использование

xml_set_element_handler() Функция определяет функцию будет называться в начале и в конце элемента в документе XML.

Эта функция возвращает значение TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Синтаксис

параметр Описание
parser Необходимые. Указывает XML-парсер, чтобы использовать
start Необходимые. Задает функцию, которая вызывается в начале элемента
end Необходимые. Определяет функцию, которая вызывается в конце элемента

Функция задается «start» параметр должна иметь три параметра:

параметр Описание
parser Необходимые. Задает переменную, содержащую XML-анализатор вызывающий обработчик
name Необходимые. Задает переменную, содержащую имя элементов, что вызывает эту функцию, из файла XML в виде строки
data Необходимые. Определяет массив , содержащий elements атрибуты из файла XML в виде строки

Функция задается «end» параметр должен иметь два параметра:

параметр Описание
parser Необходимые. Задает переменную, содержащую XML-анализатор вызывающий обработчик
name Необходимые. Задает переменную, содержащую имя элементов, что вызывает эту функцию, из файла XML в виде строки

Советы и примечания

Note: Параметры начала и окончания могут быть также массив , содержащий ссылку на объект и имя метода.

Функция PHP xml_set_element_handler

bool xml_set_element_handler (resource parser, string start_element_handler, string end_element_handler)

Устанавливает функции обработчиков для XML-разборщика parser. start_element_handler и end_element_handler это строки, содержащие имена функций, которые обязаны существовать в при вызове xml_parse() для parser.

Функция start_element_handler обязана принимать три параметра: start_element_handler (resource parser, string name, array attribs), где parser — Это ссылка на XML-разборщик, вызывающий обработчик; name — Содержит имя элемента, для которого вызывается обработчик.Если выравнивание регистра включено для данного разработчика, имя элемента будет в верхнем регистре; attribs — Содержит ассоциативный массив с атрибутами элемента (если имеются). Ключами этого массива являются имена атрибутов, значения — значения атрибутов.Имена атрибутов получают выравнивание регистра с теми же критериями, что и имена элементов. Регистр значений атрибутов не выравнивается.

Оригинальный порядок атрибутов можно запросить, пройдя по attribs нормальным способом с помощью each().Первый ключ массива — первый атрибут, и так далее.

Функция end_element_handler обязана принимать два параметра: end_element_handler (resource parser, string name), где parser — Это ссылка на XML-разборщик, вызывающий обработчик; name — Содержит имя элемента, для которого вызывается обработчик.Если выравнивание регистра включено для этого разборщика, имя элемента будет в верхнем регистре.

Если функция обработчика установлена как пустая строка, или FALSE, обработчик отключается.

TRUE возвращается, если обработчики настроеы, а FALSE, если parser не является разборщиком.

Примечание: Вместо имени функции может быть предоставлен также массив, содержащий ссылку на объект и имя метода.

Илон Маск рекомендует:  Что такое код mhash_get_block_size
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL