From OpenSCADAWiki
Jump to: navigation, search

Объект узла-тега 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 (пустые для пропуска).