'/*=========================================================================
' * Intro 新旧配置文件对比,用旧配置 更新 新配置文件
' * FileName vbscript.xml.demo.vbs
' * Author yongfa365
' * Version v1.0
' * WEB http://www.yongfa365.com
' * Email yongfa365[at]qq.com
' * FirstWrite http://www.yongfa365.com/Item/vbscript.xml.demo.vbs.html
' * MadeTime 2010-06-07 10:14:10
' * LastModify 2010-06-07 10:14:10
' *==========================================================================*/
OldConfigFileName = "1.config" '原配置文件名
NewConfigFileName = "2.config" '新配置文件名
'用vbscript读原配置文件
Set Doc = CreateObject("Microsoft.XMLDOM")
Doc.load(OldConfigFileName)
Set root = Doc.documentElement
'用vbscript读新配置文件
Set Doc2 = CreateObject("Microsoft.XMLDOM")
Doc2.load(NewConfigFileName)
Set root2 = Doc2.documentElement
'开始遍历
GetLastNode root, "/" & root.nodeName
'保存更改后的配置文件
doc2.Save("temp.config")
'根据需要调整文件名
'ChangeName OldConfigFileName, OldConfigFileName & ".old"
'ChangeName NewConfigFileName, NewConfigFileName & ".old"
'ChangeName "temp.config", NewConfigFileName
'使用xpath的demo
'root2.SelectSingleNode("/configuration/AuthenticationErrorMsg/LoadError").text="21313"
'vbscript遍历XML直到最后非text结点为止
Sub GetLastNode(node, Path)
For Each nowNode in node.childNodes
If nowNode.nodeTypeString = "text" Then
UpdateNodes(Path)
Else
GetLastNode nowNode, Path & "/" & nowNode.nodeName
End If
Next
End Sub
'更新所有结点,如同一级有多个相同名字的结点
Sub UpdateNodes(Path)
On Error Resume Next
For i=0 to root2.selectNodes(Path).length-1
root2.selectNodes(Path)(i).text = root.selectNodes(Path)(i).text
Next
End Sub
'更新一个结点内容
Sub UpdateNode(Path)
On Error Resume Next
root2.SelectSingleNode(Path).text = root.SelectSingleNode(Path).text
End Sub
Sub ChangeName(oldfile, newfile)
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFile(oldfile)
f.Name = newfile
End Sub