15 XML в системе OpenSCADA (XMLNode)
XML в системе OpenSACDA представлен объектом XML-тега - XMLNode.
15.1 XML-тег (XMLNode)
Данные:
Опции функции генерации XML-файла (enum - XMLNode::SaveView):
- XMLNode::BrOpenPrev -- вставлять конец строки перед тегом открытия;
- XMLNode::BrOpenPast -- вставлять конец строки после тега открытия;
- XMLNode::BrClosePast -- вставлять конец строки после тега закрытия;
- XMLNode::BrTextPast -- вставлять конец строки после текста тега;
- XMLNode::BrPrcInstrPast -- вставлять конец строки после вычислительной инструкции;
- XMLNode::BrAllPast -- вставлять конец строки после всех элементов.
Публичные методы:
- XMLNode( const string &name = "" ); -- Инициализация тега с именем <name>.
- XMLNode &operator=( XMLNode &prm ); -- Копирование ветки XML-дерева из <prm>.
- string name( ) const; -- Имя тега.
- XMLNode* setName( const string &s ); -- Установка имени тега в <s>.
- string text( ) const; -- Текст тега.
- XMLNode* setText( const string &s ); -- Установка текста тега в <s>.
- void attrList( vector<string> & list ) const; -- Список атрибутов <list> в теге.
- XMLNode* attrDel( const string &name ); -- Удаление атрибута <name>.
- void attrClear( ); -- Очистка атрибутов тега.
- string attr( const string &name ) const; -- Получение атрибута <name>.
- XMLNode* setAttr( const string &name, const string &val ); -- Установка/создание атрибута <name> со значением <val>.
- void prcInstrList( vector<string> &list ) const; -- Список исполнимых инструкций <list> в теге.
- void prcInstrDel( const string &target ); -- Удаление исполнимой инструкции <target> из тега.
- void prcInstrClear( ); -- Очистка инструкций тега.
- string prcInstr( const string &target ) const; -- Получение исполнимой инструкции <target> тега.
- XMLNode* setPrcInstr( const string &target, const string &val ); -- Установка исполнимой инструкции тега <target>.
- void load( const string &vl ); -- Загрузка/парсинг XML-файла.
- string save( unsigned char flgs = 0 ); -- Сохранение/создание XML-файла с параметрами форматирования <flgs>.
- XMLNode* clear( ); -- Очистка тега (рекурсивно, включая все вложения).
- int childSize( ) const; -- Количество вложенных тегов.
- void childAdd( XMLNode *nd ); -- Добавление вложенного тега.
- XMLNode* childAdd( const string &name = "" ); -- Добавление вложенного тега.
- int childIns( unsigned id, XMLNode *nd ); -- Вставка вложенного тега в позицию <id>.
- XMLNode* childIns( unsigned id, const string &name = "" ); -- Вставка вложенного тега с именем <name> в позицию <id>.
- void childDel( const unsigned id ); -- Удаление вложенного тега <id>.
- void childClear( const string &name = "" ); -- Очистка вложенного тега <name>.
- XMLNode* childGet( const int, bool noex = false ) const; -- Получение вложенного тега по порядковому номеру.
- XMLNode* childGet( const string &name, const int numb = 0, bool noex = false ) const; -- Получение вложенного <numb> порядкового тега по имени тега <name>. <noex> указывает на запрет генерации исключения в случае отсутствия тега.
- XMLNode* childGet( const string &attr, const string &name, bool noex = false ) const; -- Получение вложенного <numb> порядкового тега по значению <name> атрибута <attr>. <noex> указывает на запрет генерации исключения в случае отсутствия тега.
- XMLNode* parent( ); -- Родительский тег данного тега.