内容显示页
 
类别:ASP+VBS | 浏览(989) | 2010-6-7 10:31:01

  自体验到.net强大后,我就对外宣称不再提供asp,vbscript的技术支持,前两天朋友十分恳切的请求用vbscript实现的一个功能,没办法,实现吧!已经几年没使用过vbscript了。想当年觉得vbscript真是天下无敌,什么都能做,学了这么长时间.net后,现在看起来:vbscript是很强大,但他的智能提示实在不足,虽然有vbsedit可以智能提示,但因vbscript是无界面的,所以,还是没.net方便,只能说各有所长。

'/*=========================================================================
' * 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 

vbscript.xml.demo.vbs 下载 


引用本页地址:http://www.yongfa365.com/item/vbscript.xml.demo.vbs.html
 
 
相关链接
 
网友评论:
1 雨中风铃 - 2010-6-8 11:08:19
这个脚本感觉就是把2.config改为1.config,遍历所有text节点GetLastNode函数就能表达清楚了,代码有些冗余了
 
2 解瑋 - 2010-6-10 10:11:11
我現在吧文件改成DOS命令傳參執行.VBS 我想在.VBS執行完生成.LOG日誌 開始時間 替換的節點 舊值是什麽 新值是什麽 是否成功 結束時間。的一個這楊的日誌。 有時間的話,麻煩給我寫個列子,詳細點 最好有註釋 謝謝
 
3 林凡 - 2010-7-6 15:30:49
学习了
 
4 匿名网友 - 2010-11-17 14:07:54
怎么读取节点的属性值啊,帮忙看一下这个代码
msgbox root.childNodes(0).childNodes(10).item("eType").value
有什么问题?该怎么改呀?
 
5 求购防锈油 - 2011-6-9 14:05:28
很有技术性的文章
 
6 商标查询 - 2011-7-12 14:33:08
这些基本可以看得懂
 
7 自慰器 - 2011-8-30 23:33:16
不错,收藏了。
 
姓名: 记住我
网址:
邮箱:
内容:
验证码:  验证码图片 看不清? 换张图试试
 
     
 
 
文章分类
 
 
.Net + C#(73)
 
 
ASP+VBS(161)
 
 
 
Linux(10)
 
 
 
web 2.0(26)
 
 
 
 
 
心程(68)
 
生活(97)
 
 
     

Power by :柳永法(yongfa365)'Blog  | 京ICP备07011491号  QQ:64049027  E-mail:64049027@qq.com yongfa365'CodePlex yongfa365'CodeGoogle

申请友情链接 要求:跟本站主题相类似正规网站,双方交换为首页位置

转载请注明来源,以便后人及时得到最新、修正、加强版!!!