Working with XML data
The following set of functions have been implemented to read data from XML files:
- ibec_JsonToXML
- ibec_msxml_Create
- ibec_msxml_Free
- ibec_msxml_Save
- ibec_msxml_Load
- ibec_msxml_LoadXML
- ibec_msxml_SelectNodes
- ibec_msxml_SelectSingleNode
- ibec_msxml_GetError
- ibec_msxml_GetText
- ibec_msxml_GetTextUTF8
- ibec_msxml_GetAttribute
- ibec_msxml_TransformNode
- ibec_msxml_GetXML
The following example illustrates how to use ibec_msxml_xxx functions to process XML data. Detailed descriptions of these functions will come soon.
execute ibeblock as begin UserDB = ibec_GetUserDBConnection(); if (UserDB is null) then begin ibec_ShowMessage('You have to use the IBExpert User Database.' + ibec_CRLF() + '(Options | Environment Options | User Database)'); Exit; end; ibec_UseConnection(UserDB); xmlfile = 'https://www.ibexpert.com/rus/ibedemoscripts.xml'; --xmlfile = 'w:\ibedemoscripts.xml'; xml = ibec_msxml_Create(); try ibec_msxml_Load(xml, xmlfile); nodes = ibec_msxml_SelectNodes(xml, 'demoscripts/script'); foreach (nodes as node skip nulls) do begin sid = ibec_msxml_GetAttribute(node, 'id'); sorder = ibec_msxml_GetAttribute(node, 'order'); stype = ibec_msxml_GetAttribute(node, 'type'); sparent = ibec_msxml_GetAttribute(node, 'parentid'); tempnode = ibec_msxml_SelectSingleNode(node, 'name'); if (tempnode is not null) then sname = ibec_msxml_GetText(tempnode); tempnode = ibec_msxml_SelectSingleNode(node, 'description'); if (tempnode is not null) then sdesc = ibec_msxml_GetText(tempnode); tempnode = ibec_msxml_SelectSingleNode(node, 'source'); if (tempnode is not null) then ssource = ibec_mime_Decode(ibec_msxml_GetText(tempnode)); if (exists(select id from ibescripts where id = :sid)) then update ibescripts set item_order = :sorder, item_type = :stype, item_parent_id = :sparent, item_name = :sname, item_description = :sdesc, item_source = :ssource where id = :sid; else insert into ibescripts (id, item_order, item_type, item_parent_id, item_name, item_description, item_source) values (:sid, :sorder, :stype, :sparent, :sname, :sdesc, :ssource); commit; end finally ibec_msxml_Free(xml); end; end
back to top of page
<< ibec_ds_Sort | IBEBlock | ibec_JsonToXML >>