xml - Trying to add a node in VBScript -


i have code renames child nodes (holderaccount) holderaccount1 , holderaccount2. holderaccounts may have 1 or 2 holderaccount child nodes. want create new holderaccount, there 1 holderaccount in holderaccounts.

parent node = holderaccounts
child node = holderaccount

input sample:

<holderaccounts>     <holderaccount>test</holderaccount>         </holderaccounts>  <holderaccounts>     <holderaccount>test</holderaccount>     <holderaccount>test</holderaccount> </holderaccounts> 

my output:

<holderaccounts>     <holderaccount1>test</holderaccount1>     <holderaccount2/>  </holderaccounts>  <holderaccounts>     <holderaccount1>test</holderaccount1>      <holderaccount2>test</holderaccount2>     <holderaccount2/>        </holderaccounts> 

what trying accomplish:

<holderaccounts>     <holderaccount1>test</holderaccount1>     <holderaccount2></holderaccount2>  </holderaccounts>  <holderaccounts>     <holderaccount1>test</holderaccount1>      <holderaccount2>test</holderaccount2>                       </holderaccounts> 
set xml = createobject("microsoft.xmldom") xml.async = false count_var = 1  total_accounts = 0 total_modified_accounts = 0  'get data directory  if xml.load("c:\xml_data2.xml")     'find , give me list of holderaccounts      each holderaccounts in xml.selectnodes("//holderaccounts")         'find , give me list of holderaccount             each holderaccount in holderaccounts.selectnodes("./holderaccount")             'check see if pointing 2nd holderaccount in holderaccounts             if count_var > 1                 'rename 2nd holderaccount in holderaccounts                 set accountenum = xml.createnode(1, "holderaccount" & count_var, "")                  'give me current nodes child nodes                  each child in holderaccount.childnodes                     'attach child nodes account                     accountenum.appendchild(child.clonenode(true))                 next                 holderaccounts.replacechild accountenum, holderaccount                  total_modified_accounts = total_modified_accounts + 1                 xml.save("c:\xml_data2.xml")             else    '1st holderaccount                  'rename 1st account                  set accountenum = xml.createnode(1, "holderaccount" & count_var, "")                  each child in holderaccount.childnodes                     accountenum.appendchild(child.clonenode(true))                 next                 holderaccounts.replacechild accountenum, holderaccount                   'this returning <holderaccount2/> nodes within <holderaccounts>,                  'i want create new node exist 1 node within <holderaccounts>                 set accountenum2 = xml.createelement("holderaccount2")                 holderaccounts.appendchild(accountenum2)                  xml.save("c:\xml_data2.xml")             end if             count_var = count_var + 1         next                    count_var = 1         total_accounts = 0           next end if  set node = nothing set xml  = nothing 

i've simplified code bit better suit logic. looks you've changed specifications enumerate first node well, can rid of if statement altogether. else block being called since count_var started @ 1 each holderaccounts container.

instead, want handle case there 1 account under node. inner loop copy it, need add new, empty holderaccount node well.

input

<fabedole>     <holderaccounts>         <holderaccount>test</holderaccount>     </holderaccounts>     <holderaccounts>         <holderaccount>test</holderaccount>         <holderaccount>test</holderaccount>     </holderaccounts> </fabedole> 

output

<fabedole>     <holderaccounts>         <holderaccount1>test</holderaccount1>         <holderaccount2/>     </holderaccounts>     <holderaccounts>         <holderaccount1>test</holderaccount1>         <holderaccount2>test</holderaccount2>     </holderaccounts> </fabedole> 

code

set xml = createobject("microsoft.xmldom") xml.async = false count_var = 1  if xml.load("c:\xml_data2.xml")     each holderaccounts in xml.selectnodes("//holderaccounts")         set holderaccountcollection = holderaccounts.selectnodes("./holderaccount")          each holderaccount in holderaccountcollection              set accountenum = xml.createnode(1, "holderaccount" & count_var, "")             each child in holderaccount.childnodes                 accountenum.appendchild(child.clonenode(true))             next             holderaccounts.replacechild accountenum, holderaccount              count_var = count_var + 1         next          if holderaccountcollection.length = 1 holderaccounts.appendchild(xml.createnode(1,"holderaccount" & count_var,""))         count_var = 1        next     xml.save("c:\xml_data2.xml") end if 

Comments

Popular posts from this blog

inversion of control - Autofac named registration constructor injection -

verilog - Systemverilog dynamic casting issues -

ios - Change Storyboard View using Seague -