Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //n_svc_xml ln_xmlelem, ln_xmlchild, ln_xml
- String ls_name, ls_value, ls_ch
- integer li_mode, li_rc
- long ll_max, ll_i
- oleobject xmldom, xmlelem, xmlchild
- xmldom.CreateObject("Microsoft.XMLDOM")
- xmldom.loadXML("<XML/>")
- xmlelem = xmldom.documentElement
- /*
- xmldom.loadXML ("<XML/>")
- xmlelem = xmldom.documentElement
- */
- ll_max = Len(text_json)
- li_mode = 0
- ls_name = ""
- ls_value = ""
- do while ll_i < ll_max
- ll_i = ll_i + 1
- ls_ch = Mid(text_json, ll_i, 1)
- choose case (li_mode)
- case 0
- choose case ls_ch
- case "{"
- li_mode = 1
- end choose
- case 1
- choose case ls_ch
- case '"'
- ls_name = ""
- li_mode = 2
- case "{"
- xmlchild = xmldom.createElement("TAG")
- xmlelem.appendChild(xmlchild)
- xmlelem.appendchild(xmldom.createTextNode('~r~n'))
- xmlelem.insertBefore(xmldom.createTextNode('~r~n'), xmlchild)
- xmlelem = xmlchild
- case "["
- xmlchild = xmldom.createElement("TAG")
- xmlelem.appendChild(xmlchild)
- xmlelem.appendchild(xmldom.createTextNode('~r~n'))
- xmlelem.insertBefore(xmldom.createTextNode('~r~n'), xmlchild)
- xmlelem = xmlchild
- case "}"
- xmlelem = xmlelem.parentNode
- case "]"
- xmlelem = xmlelem.parentNode
- end choose
- case 2
- choose case ls_ch
- case '"'
- li_mode = 3
- // konec JSON ?????
- case "}"
- //xmlelem = xmlelem.parentNode
- case else
- ls_name = ls_name + ls_ch
- end choose
- case 3
- choose case ls_ch
- case ":"
- li_mode = 4
- end choose
- case 4
- choose case ls_ch
- case "["
- xmlchild = xmldom.createElement(upper(ls_name))
- xmlelem.appendChild(xmlchild)
- xmlelem.appendchild(xmldom.createTextNode('~r~n'))
- xmlelem.insertBefore(xmldom.createTextNode('~r~n'), xmlchild)
- xmlelem = xmlchild
- ls_name = ""
- li_mode = 1
- case "{"
- xmlchild = xmldom.createElement(upper(ls_name))
- xmlelem.appendChild(xmlchild)
- xmlelem.appendchild(xmldom.createTextNode('~r~n'))
- xmlelem.insertBefore(xmldom.createTextNode('~r~n'), xmlchild)
- xmlelem = xmlchild
- ls_name = ""
- li_mode = 1
- case '"'
- ls_value = ""
- li_mode = 5
- case " "
- case '~t'
- case '~n'
- case '~r'
- case else
- ls_value = ls_ch
- li_mode = 7
- end choose
- case 5
- choose case ls_ch
- case '"'
- xmlelem.setAttribute(ls_name, ls_value)
- li_mode = 1
- case "\"
- li_mode = 6
- case else
- ls_value = ls_value + ls_ch
- end choose
- case 6
- ls_value = ls_value + ls_ch
- li_mode = 5
- case 7
- if pos(("}], " + '~t' + '~r' + '~n'), ls_ch) = 0 then
- ls_value = ls_value + ls_ch
- else
- xmlelem.setAttribute(ls_name, ls_value)
- li_mode = 1
- choose case ls_ch
- case "}"
- xmlelem = xmlelem.parentNode
- case "]"
- xmlelem = xmlelem.parentNode
- end choose
- end if
- end choose
- loop
- // JSONtoXML = xmlDom
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement