[r377]: / trunk / Library / POUs / FB_XmlControl / svnobj  Maximize  Restore  History

Download this file

5 lines (5 with data), 7.8 kB

Gx_l}!0┘jЭo|фЙ=╡ыЮуF╣System.StringL{6f9dac99-8de1-4efc-8465-68ac443b7d08}SpecialFuncL{0db3d7bb-cde0-4416-9a7b-ce49a0124323}NoneImplementationL{3b83b776-fb25-43b8-99f2-3c507c9143fc}TextDocument	L{f3878285-8e4f-490b-bb1b-9acbb7eb04db}
TextLinesL{a5de0b0b-1cb5-4913-ac21-9d70293ec00d}Id
longTagTextInterfaceL{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}(*╨    Organizes parsing and composing of XML data. Data can be treated as STRING or char array.▓    Buffer size of file can be set via GVL_Param_CfUnit (xUnitBufferSize)Usage example:1. Initiate    VAR8        XML : FB_XMLControl;x        Buffer: STRING(GVL_Param_XmlControl.udiMaxFileSize);        //or▌        Buffer: ARRAY [0..GVL_Param_XmlControl.udiMaxFileSize] OF BYTE;    END_VARH        XML.pBuffer: = ADR (buffer);R        XML.LenBuffer: = SIZEOF (buffer); \    Add your own preferred fileheader like so:!^    XML: <?xml version="1.0" encoding="UTF-8"?>"   #√        XML.WriteDocumentHeader( '<?xml version="1.0" encoding="UTF-8"?>');$F2. Compose a tag with a parameters:%<XML: <MyTag ParaName = "11" />&H    XML.newTag(sTagName: = 'MyTag');'l    XML.newPara(sName: = 'ParaName', sPara: = sValue);(&    XML.CloseTag();)"3. Add tag value:*:XML: <MyTag> MyText </ MyTag>+B    XML.newTag(sName := 'MyTag');,P    XML.newTagData(sTagData :='MyText');-P4. Jump to the beginning of the XML data.(XML.toStartBuffer();/"5. Add a comment:0.XML: <!-- MyComment -->1X    XML.newComment(sTagName: = 'MyComment');2v6. Returns the next tag from the current position in buffer3XML.NextTag();4D7. Output the parameter of the tag5BXML.NextPara(sPara: = LastValue);6`Feedback: sPara returns the value found (string)7*)88FUNCTION_BLOCK FB_XmlControl9VAR:@    XmlBuffer : FB_StreamBuffer;;H    TagListBuffer : FB_StreamBuffer;<.    Tags : T_MaxString;=P    TagListSeekBuffer : FB_StreamBuffer;>,    TagsSeek : STRING;?@    TagBuffer : FB_StreamBuffer;@,    Tag : T_MaxString;A$    TagOpen: BOOL;B&    Select : UDINT;C8    SearchPosition : UDINT; DEND_VAREVAR CONSTANTF@    TAG_OPEN : STRING(1) := '<';GB    TAG_CLOSE : STRING(1) := '>';HL    END_TAG_CLOSE : STRING(2) := '/>';I:    SPACE : STRING(1) := ' ';J<    EQUALS : STRING(1) := '=';K:    QUOTE : STRING(1) := '"';LD    BACK_SLASH : STRING(1) := '\';MJ    FORWARD_SLASH : STRING(1) := '/';NP    OPEN_COMMENT : STRING(5) := '<!-- ';OP    CLOSE_COMMENT : STRING(4) := ' -->';P8    TAB : STRING(2) := '$T';Q@    CR_LF : STRING(4) := '$R$N';R`    // $OD : ASCII code for carriage return (CR)S.    // $$ : to add a $RTB    // $' : to add ' (apostrophe)U6    // $L or $l : line feedV4    // $N or $n : new lineW6    // $P or $p : next pageX:    // $R or $r : end of lineY"UniqueIdGeneratorZ153[POULevel\L{8e575c5b-1d37-49c6-941b-5c0ec7874787}]Standard^ ChildObjectGuids_8System.Collections.ArrayList`,AddAttributeSubsequentaboolпп-пп	E
пп
ґзп-пп	E
[пп
ґ≈зп-пп
ґ≤зп-пп
ґ≥зп-пп
ґзп-пп
ґзп-пп
ґзп-пп
ґ	зп-пп
ґ
зп-пп
ґзп-пп
ґзп-пп
ґ
зп-пп
ґзп-пп
ґзп-пп
ґзп-пп
ґзп-пп
ґзп-пп
ґзп-пп
ґзп- пп
ґзп-!пп
ґnзп-"пп
ґзп-#пп
ґзп-пп
ґзп-$пп
ґзп-%пп
ґзп-пп
ґзп-&пп
ґзп-'пп
ґзп-(пп
ґ зп-пп
ґ!зп-пп
ґ"зп-)пп
ґ#зп-*пп
ґ$зп-пп
ґ%зп-+пп
ґ&зп-,пп
ґ'зп-(пп
ґ(зп-пп
ґ)зп-пп
ґ*зп--пп
ґ+зп-.пп
ґ,зп-пп
ґ-зп-пп
ґ.зп-/пп
ґ/зп-0пп
ґ0зп-пп
ґ1зп-1пп
ґ2зп-пп
ґ3зп-2пп
ґ4зп-3пп
ґ5зп-пп
ґ6зп-пп
ґ7зп-4пп
ґ8зп-5пп
ґ9зп-6пп
ґ:зп-пп
ґ;зп-7пп
ґuзп-8пп
ґvзп-9пп
ґwзп-:пп
ґxзп-;пп
ґyзп-<пп
ґzзп-=пп
ґ{зп->пп
ґ|зп-?пп
ґ}зп-@пп
ґ~зп-Aпп
ґзп-Bпп
ґ─зп-Cпп
ґ│зп-Dпп
ґ┌зп-Eпп
ґ┐зп-Fпп
ґ└зп-Gпп
ґ┘зп-Hпп
ґ├зп-Iпп
ґ┤зп-Jпп
ґ┬зп-Kпп
ґ┴зп-Lпп
ґ┼зп-Mпп
ґ▀зп-Nпп
ґ▄зп-Oпп
ґ█зп-Pпп
ґ▌зп-Qпп
ґ▐зп-пп
ґ░зп-Rпп
ґ▒зп-Sпп
ґ▓зп-Tпп
ґ⌠зп-Uпп
ґ■зп-Vпп
ґ∙зп-Wпп
ґ√зп-Xпп
ґзп-DпY-Zп[\-]^_п`aґ