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. Повертає 0 за відсутності.
  • XMLNodeObj childGet( string name, int num = 0 ) — отримує вкладений вузол з ім'ям тегу name та порядковим номером num. Повертає 0 за відсутності.
  • XMLNodeObj parent() — отримує батьківський вузол. Повертає false за відсутності.
  • string load( string str, bool file = false, int flg = 0, string cp = "UTF-8" ) — завантажує XML з рядка str або з файлу з шляхом у str якщо file дорівнює "true", з кодуванням cp. Повертає рядок із помилкою у форматі "{errCod}:{errText}", який "0" для успішного завантаження. Де 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", int limit = 0, int from = 0 ) — отримує масив елементів з дерева за тегом tag (порожній для всіх) та атрибутом attr зі значенням attrVal (порожній для пропуску), також починаючи із тегу з номером from і обмежуючи їх кількість у limit (нуль без обмеження).