XMLString

<< Click to Display Table of Contents >>

Navigation:  Проект в MasterSCADA 4D > Дерево библиотек > Библиотека BaseObjects > BaseObjects.ФБ.Системные > Работа с файлами >

XMLString

Функциональный блок XMLString служит для  загрузки XML в строковом виде, его модификации и сохранения.

Важно! Для возможности работы c ФБ XMLString в исполнительную систему должна входить опция MSRT4D-FileWork. Данная опция включена в базовый функционал лицензий Professional и Enterprise.

Этот функциональный блок может использоваться как самостоятельно, вне программ, так и в составе любой программы.

Находится в библиотеке BaseObjects.

Вид в дереве

Вид в редакторе FBD

XMLString

XMLString_1

Входы и выходы ФБ:

Название

Тип

Назначение

Входы

InContent

STRING

Указывается XML-строка, которую необходимо прочитать / модифицировать / сохранить.

Load

BOOL

Загружает содержимое строки во внутреннее представление по переднему фронту

Save

BOOL

Сохраняет по переднему фронту содержимое внутреннего представления в виде строки

XPath

STRING

Указывается XPath-запрос для определения элемента или атрибута, с которым происходит работа. Также может быть выборка группы атрибутов, в этом случае возвращается массив значений.

ReturnType

BaseObjects.XMLReturnType

Указывается тип возвращаемого на выходе OutValue значения:

String

Array

Struct

ArrayOfStruct

Boolean

Integer

Double

GetValue

BOOL

Начинает по переднему фронту чтение значения, заданное на входе XPath

SetValue

BOOL

Устанавливает по переднему фронту значение указанное на входе InValue на элемент/атрибут указанный на входе XPath

InValue

ANY

Задается значение, которое необходимо установить элементу/атрибуту;

AddElement

BOOL

Добавляет по переднему фронту дочерний элемент (к элементу, что задан в XPath) значение элемента задается на входе InValue как дочерний в элемент XPath;

AddElementName

STRING

имя добавляемого элемента.

Выходы

OutContent

STRING

Выдается результирующая строка, полученная после изменения значения с False на TRUE входа Save

OutValue

ANY

Выдается результат запроса, полученного после изменения значения с False на TRUE входа GetValue;

ErrorCode

DINT

Выдается код ошибки;

ErrorText

STRING

Выдается текст ошибки.

Коды и тексты ошибок:

0 - "Успешно",

1 - "Файл не найден",

2 - "Ошибка чтения",

3 - "Ошибка выделения памяти",

4 - "Внутренняя ошибка",

5 - "Синтаксический анализатор не смог определить тип тега",

6 - "Ошибка при разборе XML-декларации",

7 - "Ошибка при разборе комментария",

8 - "Ошибка при разборе CDATA секции",

9 - "Ошибка при разборе декларации типа документа",

10 - "Ошибка при разборе PCDATA секции",

11 - "Ошибка при разборе открывающего тега элемента",

12 - "Ошибка при разборе атрибута элемента",

13 - "Ошибка при разборе закрывающего тега элемента",

14 - "Несовпадение открывающего и закрывающего тега элемента",

15 -  "Невозможно присоединить узел, так как корень не является элементом или корнем документа",

16 - "Синтаксический анализ произведен в документе, не имеющем элементов",

17 - "Элемент не найден",

18 - "Ошибка XPath-запроса".

XMLReturnType

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

XMLString_2

В случае если выбор типа производит оператор вручную, то для этого можно использовать элемент Выпадающий список. Параметр, получающий данные от выпадающего списка и передающий их на вход функционального блока (или программы, в которой он находится) должен иметь также тип XMLReturnType.

Рекомендации по использованию

Как правило ФБ XMLString  используется в комплекте с функциональными блоками FileToString и StringToFile.

Изменение существующего элемента

1.На вход InContent была подана строка:

XMLString_3

2.Содержимое будет передано во внутренний обработчик функционального блока, после изменения значения входа Load.

3.Теперь можно изменить содержимое загруженной строки. Изменим текст Enter topic text here. Для этого сформируем XPath-запрос. Этот текст находится в элементе para, поэтому запрос будет иметь вид: topic/body/para:

XMLString_4

4.На вход InValue установим значение, например, Справочная система MasterSCADA 4D.

5.После изменения значения входа SetValue с False на TRUE элемент будет изменен внутри функционального блока.

6.Чтобы увидеть его на выходе OutContent результат, необходимо изменить значение входа Save с False на TRUE. Если вывести в окно значение выхода OutContent, то в клиенте визуализации получим:

XMLString_5

Изменение существующего атрибута

Продолжаем работать со строкой, представленной в предыдущем разделе. Изменим значение атрибута styleclass элемента para.

1.Сформируем новый XPath-запрос topic/body/para/@styleclass. Видно, что к атрибуту элемента необходимо добавлять символ @.

2.На вход InValue установим значение, например, Heading2.

3. После изменения значения входа SetValue с False на TRUE элемент будут изменен внутри функционального блока.

4.Чтобы увидеть его на выходе OutContent результат, необходимо изменить значение входа Save с False на TRUE. Если вывести в окно значение выхода OutContent, то в клиенте визуализации получим:

XMLString_6

Добавление нового элемента

Продолжаем работать со строкой, представленной в предыдущем разделе. В элемент body добавим новый элемент para1

1.Сформируем новый XPath-запрос topic/body

2.На входе AddElementName укажем имя нового элемента para1

3.На входе InValue установим значение, которое хотим присвоить новому элементу. Например, MasterSCADA 4D - любимая SCADA-система.

4. После изменения значения входа AddElement с False на TRUE элемент будет добавлен внутри функционального блока.

5.После изменения значения входа SetValue с False на TRUE элемент будут изменен внутри функционального блока.

6.Чтобы увидеть его на выходе OutContent результат, необходимо изменить значение входа Save с False на TRUE. Если вывести в окно значение выхода OutContent, то в клиенте визуализации получим:

XMLString_7