From OpenSCADAWiki
Объект узла-тега XML (XMLNodeObj)
Функции:
- string name( ) — имя узла, XML-тега.
- string text( bool full = false ) — текст узла, содержимое XML-тега. Установить full для получения комбинированного текста со всех включенных узлов.
- string attr( string id ) — значение атрибута узла id.
- XMLNodeObj setName( string vl ) — устанавливает имя узла в vl. Возвращает текущий узел.
- XMLNodeObj setText( string vl ) — устанавливает текст узла в vl. Возвращает текущий узел.
- XMLNodeObj setAttr( string id, string vl ) — устанавливает атрибут id в значение vl. Возвращает текущий узел.
- XMLNodeObj clear( bool full = false ) — очищает узел, удалением дочерних узлов, очищает текст и атрибуты, для full.
- int childSize( ) — количество вложенных узлов.
- XMLNodeObj childAdd( ElTp no = XMLNodeObj ); XMLNodeObj childAdd(string no) — добавляет объект no как вложенный. no может быть как непосредственно объектом-результатом функции "SYS.XMLNode()", так и строкой с именем нового тега. Возвращается вложенный узел.
- XMLNodeObj childIns( int id, ElTp no = XMLNodeObj ); XMLNodeObj childIns(int id, string no) — вставляет объект no как вложенный, в позицию id. no может быть как непосредственно объектом-результатом функции "SYS.XMLNode()", так и строкой с именем нового тега. Возвращается вложенный узел.
- XMLNodeObj childDel( int id ) — удаляет вложенный узел в позиции id. Возвращает текущий узел.
- XMLNodeObj childGet( int id ) — получает вложенный узел в позиции id.
- XMLNodeObj childGet( string name, int num = 0 ) — получает вложенный узел с именем тега name и порядковым номером num.
- XMLNodeObj parent() — получает родительский узел.
- string load( string str, bool file = false, int flg = 0, string cp = "UTF-8" ) — загружает XML из строки str или из файла с путём в str если file равно "true", с кодировкой cp. Где flg — флаги загрузки:
- 0x01 — полная загрузка, с блоками текста и комментариями в специальных узлах;
- 0x02 — не удалять пробелы в начале и конце текста тега.
- string save( int flg = 0, string path = "", string cp = "UTF-8" ) — сохраняет дерево XML в строку или в файл path с параметрами форматирования flg и кодировкой cp. Возвращает текст XML или код ошибки. Предусмотрены следующие флаги форматирования flg:
- 0x01 — прерывать строку перед открывающим тегом;
- 0x02 — прерывать строку после открывающего тега;
- 0x04 — прерывать строку после закрывающего тега;
- 0x08 — прерывать строку после текста;
- 0x10 — прерывать строку после инструкции;
- 0x1E — прерывать строку после всех;
- 0x20 — вставлять стандартный XML-заголовок;
- 0x40 — вставлять стандартный XHTML-заголовок;
- 0x80 — очищать сервисные теги: <??>, <!-- -->;
- 0x100 — не кодировать наименований тегов;
- 0x200 — не кодировать наименований атрибутов;
- 0x400 — защита бинарных символов [\x0-\x8\xB-\xC\x0E-\x1F] и ошибочных UTF-8.
- XMLNodeObj getElementBy( string val, string attr = "id" ) — получает элемент из дерева по атрибуту attr со значением val.
- TArrayObj<XMLNodeObj> getElementsBy( string tag, string attrVal = "", string attr = "id" ) — получает массив элементов из дерева по тегу tag (пустой для всех) и атрибуту attr со значением attrVal (пустые для пропуска).