Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- String ls_name, ls_value, ls_ch, ls_pom
- integer li_mode, li_rc
- long ll_max, ll_i
- OLEobject xmlelem, xmlchild
- xmldoc.loadXML("<XML/>")
- xmlelem = xmldoc.documentElement
- ll_max = Len(as_json) //počet znaků v kódu
- li_mode = 0 //zvolený mód
- ls_name = "" //název
- ls_value = "" //hodnota
- //Cyklus jde znak po znaku
- do while ll_i < ll_max
- ll_i = ll_i + 1
- //V textu vybere počet znaků(1) od pozicice ll_i - vždy tedy jeden znak
- ls_ch = Mid(as_json, ll_i, 1)
- choose case (li_mode)
- case 0 //Mod 0 - hledá počáteční závorku
- choose case ls_ch
- case "{"
- xmlchild = xmldoc.createElement("TAG")
- xmlelem.appendChild(xmlchild)
- xmlelem.appendchild(xmldoc.createTextNode('~r~n'))
- xmlelem.insertBefore(xmldoc.createTextNode('~r~n'), xmlchild)
- xmlelem = xmlchild
- li_mode = 1
- end choose
- case 1 //Mod 1
- choose case ls_ch
- case '"'
- ls_name = ""
- li_mode = 2
- case "{"
- xmlchild = xmldoc.createElement("TAG")
- xmlelem.appendChild(xmlchild)
- xmlelem.appendchild(xmldoc.createTextNode('~r~n'))
- xmlelem.insertBefore(xmldoc.createTextNode('~r~n'), xmlchild)
- xmlelem = xmlchild
- case "["
- xmlchild = xmldoc.createElement("TAG")
- xmlelem.appendChild(xmlchild)
- xmlelem.appendchild(xmldoc.createTextNode('~r~n'))
- xmlelem.insertBefore(xmldoc.createTextNode('~r~n'), xmlchild)
- xmlelem = xmlchild
- case "}"
- xmlelem = xmlelem.parentNode
- case "]"
- xmlelem = xmlelem.parentNode
- end choose
- case 2 //Mod 2
- choose case ls_ch
- case '"'
- li_mode = 3
- case else
- ls_name = ls_name + ls_ch
- end choose
- case 3 //Mod 3
- choose case ls_ch
- case ":"
- li_mode = 4
- end choose
- case 4 //Mod 4
- choose case ls_ch
- case "["
- xmlchild = xmldoc.createElement(upper(ls_name))
- xmlelem.appendChild(xmlchild)
- xmlelem.appendchild(xmldoc.createTextNode('~r~n'))
- xmlelem.insertBefore(xmldoc.createTextNode('~r~n'), xmlchild)
- xmlelem = xmlchild
- ls_name = ""
- li_mode = 1
- case "{"
- xmlchild = xmldoc.createElement(upper(ls_name))
- xmlelem.appendChild(xmlchild)
- xmlelem.appendchild(xmldoc.createTextNode('~r~n'))
- xmlelem.insertBefore(xmldoc.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 //Mod 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 //Mod 6
- ls_value = ls_value + ls_ch
- li_mode = 5
- case 7 //Mod 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
- return 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement