Advertisement
Guest User

Untitled

a guest
Aug 23rd, 2016
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //n_svc_xml ln_xmlelem, ln_xmlchild, ln_xml
  2. String ls_name, ls_value, ls_ch
  3. integer li_mode, li_rc
  4. long ll_max, ll_i
  5. oleobject xmldom, xmlelem, xmlchild
  6.  
  7. xmldom.CreateObject("Microsoft.XMLDOM")
  8. xmldom.loadXML("<XML/>")
  9. xmlelem = xmldom.documentElement
  10.  
  11.  
  12. /*
  13. xmldom.loadXML ("<XML/>")
  14. xmlelem = xmldom.documentElement
  15. */
  16.  
  17.  
  18.  
  19.   ll_max = Len(text_json)
  20.   li_mode = 0
  21.   ls_name = ""
  22.   ls_value = ""
  23.   do while ll_i < ll_max
  24.     ll_i = ll_i + 1
  25.     ls_ch = Mid(text_json, ll_i, 1)
  26.     choose case (li_mode)
  27.         case 0  
  28.         choose case ls_ch
  29.             case "{"
  30.                 li_mode = 1
  31.             end choose               
  32.         case 1  
  33.         choose case ls_ch
  34.                 case '"'
  35.                   ls_name = ""
  36.                   li_mode = 2
  37.                 case "{"
  38.                   xmlchild = xmldom.createElement("TAG")               
  39.                   xmlelem.appendChild(xmlchild)
  40.                   xmlelem.appendchild(xmldom.createTextNode('~r~n'))
  41.                   xmlelem.insertBefore(xmldom.createTextNode('~r~n'), xmlchild)
  42.                   xmlelem = xmlchild
  43.                  
  44.                 case "["
  45.                   xmlchild = xmldom.createElement("TAG")               
  46.                   xmlelem.appendChild(xmlchild)
  47.                   xmlelem.appendchild(xmldom.createTextNode('~r~n'))
  48.                   xmlelem.insertBefore(xmldom.createTextNode('~r~n'), xmlchild)
  49.                   xmlelem = xmlchild
  50.                 case "}"
  51.                   xmlelem = xmlelem.parentNode
  52.                 case "]"
  53.                   xmlelem = xmlelem.parentNode
  54.             end choose 
  55.         case 2  
  56.             choose case ls_ch
  57.                 case '"'
  58.                     li_mode = 3
  59.                 // konec JSON   ?????                
  60.                 case "}"
  61.                    //xmlelem = xmlelem.parentNode    
  62.                 case else
  63.                     ls_name = ls_name + ls_ch
  64.             end choose
  65.         case 3  
  66.             choose case ls_ch
  67.                 case ":"
  68.                   li_mode = 4
  69.             end choose
  70.         case 4     
  71.             choose case ls_ch
  72.                 case "["
  73.                   xmlchild = xmldom.createElement(upper(ls_name))
  74.                   xmlelem.appendChild(xmlchild)
  75.                   xmlelem.appendchild(xmldom.createTextNode('~r~n'))
  76.                   xmlelem.insertBefore(xmldom.createTextNode('~r~n'), xmlchild)
  77.                   xmlelem = xmlchild
  78.                  
  79.                   ls_name = ""
  80.                   li_mode = 1
  81.                 case "{"
  82.                   xmlchild = xmldom.createElement(upper(ls_name))
  83.                   xmlelem.appendChild(xmlchild)
  84.                   xmlelem.appendchild(xmldom.createTextNode('~r~n'))
  85.                   xmlelem.insertBefore(xmldom.createTextNode('~r~n'), xmlchild)
  86.                   xmlelem = xmlchild
  87.                  
  88.                   ls_name = ""
  89.                   li_mode = 1
  90.                 case '"'
  91.                   ls_value = ""
  92.                   li_mode = 5
  93.                
  94.                 case " "
  95.                 case '~t'
  96.                 case '~n'
  97.                 case '~r'              
  98.                 case else
  99.                   ls_value = ls_ch
  100.                   li_mode = 7
  101.             end choose
  102.         case 5
  103.         choose case ls_ch
  104.                 case '"'
  105.                   xmlelem.setAttribute(ls_name, ls_value)
  106.                   li_mode = 1
  107.                 case "\"
  108.                   li_mode = 6
  109.                 case else
  110.                   ls_value = ls_value + ls_ch
  111.             end choose
  112.     case 6
  113.       ls_value = ls_value + ls_ch
  114.       li_mode = 5
  115.      case 7
  116.         if pos(("}], " + '~t' + '~r' + '~n'), ls_ch) = 0 then
  117.             ls_value = ls_value + ls_ch              
  118.       else
  119.         xmlelem.setAttribute(ls_name, ls_value)
  120.         li_mode = 1
  121.             choose case ls_ch
  122.               case "}"
  123.                  xmlelem = xmlelem.parentNode
  124.               case "]"
  125.                  xmlelem = xmlelem.parentNode
  126.             end choose
  127.       end if
  128.        
  129. end choose
  130. loop
  131.  
  132. //  JSONtoXML = xmlDom
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement