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. Повертає 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 (нуль без обмеження).