CatchXML()
Синтаксис
Result = CatchXML(#XML , *Address , Size [, Flags [, Encoding]])
Описание
Создаёт новое дерево XML по XML-данным в указанной области памяти. Разметку можно разбирать поблочно посредством многократных вызовов этой функции, позволяющих разбирать XML-данные по мере поступления из сети, например.
Параметры
#XML Номер, для идентификации нового дерева XML. В качестве этого параметра можно использовать значение #PB_Any, чтобы сгенерировать этот Номер автоматически. *Address Адрес области памяти выделяемой для создания дерева, память должна быть доступна для чтения. Size Размер (в байтах) области памяти выделяемой для создания дерева. Flags (дополн.) Если параметр не задан, область памяти должна содержать все XML-данные. Для поблочного разбора XML предусмотрены следующие флаги: #PB_XML_StreamStart: Начать разбор первого блока #PB_XML_StreamNext : Продолжить разбор следующего блока #PB_XML_StreamEnd : Закончить разбор после этого блокаПри вызове этой функции с флагом #PB_XML_StreamStart или #PB_XML_StreamEnd, для параметра 'Size' можно задать значение 0, чтобы начать/закончить операцию разбора, в действительности не разбирая дальнейших данных.
Обратите внимание на то, что при поблочном разборе все уже разобранные данные доступны в дереве XML даже до того, как будет сделан вызов с флагом #PB_XML_StreamEnd.Encoding (дополн.) Задаёт кодировку, которую будет использовать парсер при загрузке дерева XML (она замещает кодировку, заданную в декларации XML!). Допустимые значения: #PB_UTF8 (по умолчанию) #PB_Ascii #PB_UnicodeЭтот параметр следует использовать когда документ не содержит декларации XML, или информация о кодировке предоставляется вне документа XML, например в заголовке типа mime в протоколе связи.
Возвращаемое значение
Эта функция возвращает 0 только в случае ошибок с памятью или некорректных флагов. Для проверки ошибок синтаксического анализа следует использовать функцию XMLStatus(). В случае ошибки синтаксического анализа все данные, разобранные до ошибки, доступны в дереве XML. Если в качестве параметра '#XML' использовалось значение #PB_Any, то в случае успеха будет возвращен сгенерированный Номер.
См. также
FreeXML(), CreateXML(), LoadXML(), ParseXML()
Поддерживаемые OS
Все