Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 5th, 2012  |  syntax: None  |  size: 1.94 KB  |  hits: 18  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Option Explicit
  2.  
  3. Dim XmlFileName: XmlFileName = "D:\extract_column_test.xml"
  4.  
  5. Dim xmlDoc: Set xmlDoc=CreateObject("Microsoft.XMLDOM")
  6. Dim Result
  7.  
  8. xmlDoc.async="false"
  9. xmlDoc.setProperty "SelectionLanguage", "XPath"
  10. Result = xmlDoc.load(XmlFileName)
  11. If Not Result Then
  12.         MsgBox("Error loading file """ & XmlFileName & """")
  13. Else
  14.        
  15.        
  16.         Dim nodes
  17.         Dim column_record
  18.        
  19.         Set nodes = xmlDoc.selectNodes("//Collection[@Name='Columns']/SubRecord[child::Property[@Name='XXEXTRACTED_COLUMNXX']]")
  20.  
  21.         For Each column_record In nodes
  22.                 replaceColumn column_record
  23.         End
  24.        
  25.        
  26.         xmlDoc.save XmlFileName & ".new"
  27. End If
  28.  
  29.  
  30. Private Function replaceColumn(byRef column_record)
  31.         Dim new_column1
  32.         Dim new_column2
  33.         Dim derivation_node
  34.  
  35.  
  36.         Set new_column1 = column_record.copy
  37.         new_column1.selectSingleNode("/Property[@Name='Name']").text = "NEW_COLUMN1"
  38.  
  39.         Set derivation_node = new_column1.selectSingleNode("/Propery[@Name='parsedDerivation']")
  40.         derivation_node.text = Replace(derivation_node.text,"XXEXTRACTED_COLUMNXX","NEW_COLUMN1")
  41.  
  42.         Set derivation_node = new_column1.selectSingleNode("/Propery[@Name='SourceColumn']")
  43.         derivation_node.text = Replace(derivation_node.text,"XXEXTRACTED_COLUMNXX","NEW_COLUMN1")
  44.  
  45.  
  46.         Set new_column2 = column_record.copy
  47.         new_column2.selectSingleNode("/Property[@Name='Name']").text = "NEW_COLUMN2"
  48.  
  49.         Set derivation_node = new_column1.selectSingleNode("/Propery[@Name='parsedDerivation']")
  50.         derivation_node.text = Replace(derivation_node.text,"XXEXTRACTED_COLUMNXX","NEW_COLUMN2")
  51.  
  52.         Set derivation_node = new_column1.selectSingleNode("/Propery[@Name='SourceColumn']")
  53.         derivation_node.text = Replace(derivation_node.text,"XXEXTRACTED_COLUMNXX","NEW_COLUMN2")
  54.  
  55.  
  56.         column_record.appendSibling new_column1
  57.         column_record.appendSibling new_column2
  58.         column_record.delete
  59.        
  60. End Function