From OpenSCADAWiki
Line 15: | Line 15: | ||
* ''XMLNodeObj childGet( string name, int num = 0 )'' — отримує вкладений вузол з ім'ям тегу ''name'' та порядковим номером ''num''. Повертає '''0''' за відсутності. | * ''XMLNodeObj childGet( string name, int num = 0 )'' — отримує вкладений вузол з ім'ям тегу ''name'' та порядковим номером ''num''. Повертає '''0''' за відсутності. | ||
* ''XMLNodeObj parent()'' — отримує батьківський вузол. Повертає '''false''' за відсутності. | * ''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}'''", який " | + | * ''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 — повне завантаження, з блоками тексту та коментарями у спеціальних вузлах; | ::0x01 — повне завантаження, з блоками тексту та коментарями у спеціальних вузлах; | ||
::0x02 — не видаляти пробіли на початку та кінці тексту тегу. | ::0x02 — не видаляти пробіли на початку та кінці тексту тегу. |
Revision as of 20:42, 29 March 2024
Об'єкт вузла-тегу 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" ) — отримує масив елементів з дерева за тегом tag (порожній для всіх) та атрибутом attr зі значенням attrVal (порожні для пропуску).