15. XML â ñèñòåìå OpenSCADA (XMLNode)
XML â ñèñòåìå OpenSACDA ïðåäñòàâëåí îáúåêòîì XML-òåãà — XMLNode.
15.1. XML-òåã (XMLNode)
Äàííûå:
Îïöèè çàãðóçêè XML-ôàéëà (enum — XMLNode::LoadFlgs):
- XMLNode::LD_Full — ïîëíàÿ çàãðóçêà XML;
- XMLNode::LD_NoTxtSpcRemEnBeg — íå óäàëÿòü ïðîáåëû â íà÷àëå è êîíöå òåêñòà òåãà, äëÿ íåïîëíîãî ðåæèìà.
Îïöèè ôóíêöèè ãåíåðàöèè XML-ôàéëà (enum — XMLNode::SaveView):
- XMLNode::BrOpenPrev — âñòàâëÿòü êîíåö ñòðîêè ïåðåä òåãîì îòêðûòèÿ;
- XMLNode::BrOpenPast — âñòàâëÿòü êîíåö ñòðîêè ïîñëå òåãà îòêðûòèÿ;
- XMLNode::BrClosePast — âñòàâëÿòü êîíåö ñòðîêè ïîñëå òåãà çàêðûòèÿ;
- XMLNode::BrTextPast — âñòàâëÿòü êîíåö ñòðîêè ïîñëå òåêñòà òåãà;
- XMLNode::BrSpecBlkPast — âñòàâëÿòü êîíåö ñòðîêè ïîñëå âû÷èñëèòåëüíîé èíñòðóêöèè;
- XMLNode::BrAllPast — âñòàâëÿòü êîíåö ñòðîêè ïîñëå âñåõ ýëåìåíòîâ;
- XMLNode::XMLHeader — âñòàâëÿòü ñòàíäàðòíûé xml-çàãîëîâîê;
- XMLNode::Clean — î÷èñòêà ðåçóëüòàòà îò êîììåíòàðèåâ è ïðîöåäóðíûõ âñòàâîê;
- XMLNode::XHTMLHeader — âñòàâëÿòü ñòàíäàðòíûé XHTML-çàãîëîâîê;
- XMLNode::MissTagEnc — ïðîïóñêàòü êîäèðîâàíèå èì¸í òåãîâ;
- XMLNode::MissAttrEnc — ïðîïóñêàòü êîäèðîâàíèå èì¸í àòðèáóòîâ.
Ïóáëè÷íûå ìåòîäû:
- XMLNode( const string &name = "" ); — Èíèöèàëèçàöèÿ òåãà ñ èìåíåì name.
- XMLNode( const XMLNode &nd ); — Êîïèðóþùèé êîíñòðóêòîð.
- XMLNode &operator=( const XMLNode &prm ); — Êîïèðîâàíèå âåòêè XML-äåðåâà èç prm.
- string name( ) const; — Èìÿ òåãà.
- XMLNode* setName( const string &s ); — Óñòàíîâêà èìåíè òåãà â s.
- string text( bool childs = false, bool recursive = false ) const; — Òåêñò òåãà. childs — äëÿ ïîëó÷åíèÿ òåêñò èç ñïåöèàëèçèðîâàííûõ óçëîâ òåêñòà.
- XMLNode* setText( const string &s, bool childs = false ); — Óñòàíîâêà òåêñòà òåãà â s. childs — äëÿ óñòàíîâêè òåêñòà â ñïåöèàëèçèðîâàííûé óçåë òåêñòà.
- void attrList( vector<string> & list ) const; — Ñïèñîê àòðèáóòîâ list â òåãå.
- XMLNode* attrDel( const string &name ); — Óäàëåíèå àòðèáóòà name.
- void attrClear( ); — Î÷èñòêà àòðèáóòîâ òåãà.
- string attr( const string &name, bool caseSens = true ) const; — Ïîëó÷åíèå àòðèáóòà name.
- XMLNode* setAttr( const string &name, const string &val ); — Óñòàíîâêà/ñîçäàíèå àòðèáóòà name ñî çíà÷åíèåì val.
- void load( const string &vl, unsigned flg = 0, const string &cp = "UTF-8" ); — Çàãðóçêà/ïàðñèíã XML-ôàéëà, ñ êîäèðîâêîé cp è ôëàãàìè flg.
- string save( unsigned flg = 0, const string &cp = "UTF-8" ); — Ñîõðàíåíèå/ñîçäàíèå XML-ôàéëà ñ ïàðàìåòðàìè ôîðìàòèðîâàíèÿ flg è êîäèðîâêîé cp.
- XMLNode* clear( ); — Î÷èñòêà òåãà (ðåêóðñèâíî, âêëþ÷àÿ âñå âëîæåíèÿ).
- bool childEmpty( ) const; — Ïðîâåðêà íà îòñóòñòâèå âëîæåííûõ òåãîâ.
- unsigned childSize( ) const; — Êîëè÷åñòâî âëîæåííûõ òåãîâ.
- void childAdd( XMLNode *nd ); — Äîáàâëåíèå âëîæåííîãî òåãà.
- XMLNode* childAdd( const string &name = "" ); — Äîáàâëåíèå âëîæåííîãî òåãà.
- int childIns( unsigned id, XMLNode *nd ); — Âñòàâêà âëîæåííîãî òåãà â ïîçèöèþ id.
- XMLNode* childIns( unsigned id, const string &name = "" ); — Âñòàâêà âëîæåííîãî òåãà ñ èìåíåì name â ïîçèöèþ id.
- void childDel( const unsigned id ); — Óäàëåíèå âëîæåííîãî òåãà id.
- void childDel( XMLNode *nd ); — Óäàëåíèå âëîæåííîãî òåãà ïî åãî àäðåñó nd.
- void childClear( const string &name = "" ); — Î÷èñòêà âëîæåííîãî òåãà name.
- XMLNode* childGet( const int, bool noex = false ) const; — Ïîëó÷åíèå âëîæåííîãî òåãà ïî ïîðÿäêîâîìó íîìåðó.
- XMLNode* childGet( const string &name, const int numb = 0, bool noex = false ) const; — Ïîëó÷åíèå âëîæåííîãî numb ïîðÿäêîâîãî òåãà ïî èìåíè òåãà name. noex óêàçûâàåò íà çàïðåò ãåíåðàöèè èñêëþ÷åíèÿ â ñëó÷àå îòñóòñòâèÿ òåãà.
- XMLNode* childGet( const string &attr, const string &name, bool noex = false ) const; — Ïîëó÷åíèå âëîæåííîãî numb ïîðÿäêîâîãî òåãà ïî çíà÷åíèþ name àòðèáóòà attr. noex óêàçûâàåò íà çàïðåò ãåíåðàöèè èñêëþ÷åíèÿ â ñëó÷àå îòñóòñòâèÿ òåãà.
- XMLNode* getElementBy( const string &attr, const string &val ); — Ïîèñê âëîæåííîãî óçëà ïî çíà÷åíèþ val àòðèáóòà attr.
- XMLNode* parent( ); — Ðîäèòåëüñêèé òåã äàííîãî òåãà.
- XMLNode* root( ); — Êîðíåâîé òåã äàííîãî òåãà.