This script demonstrates how to save information to a xml file with the use of MSXML. The example xml file is used for the photo album on the site. 复制代码 代码如下: "***************************************************************** "** Script: CreateXML.vbs "** Version: 1.0 "** Created: 01/12/2009 9:51PM "** Author: Adriaan Westra "** E-mail: "** Purpose / Comments: "** Create xml file for photo album "** "** "** Changelog : "** 12-01-2009 9:51 : Initial version "** "*****************************************************************
On Error Resume next Dim Version : Version = "1.0" " Script version Dim Author : Author = "A. Westra" Dim objXML "XML Document object Dim root "Root element of the xml document Dim newNode " XML Node object Dim cNode " XML (child) Node object Dim cNodeText " XML Text Node object
"***************************************************************** "** Make sure the script is started with cscript If InStr(wscript.FullName, "wscript.exe") > 0 Then MsgBox "Please run this script with cscript.exe." & Chr(13) & _ "For example : cscript " & WScript.ScriptName & " /?", _ vbExclamation, WScript.ScriptName WScript.Quit(1) End If
"***************************************************************** "** Get commandline parameters Set Args = Wscript.Arguments
If Args.Count = 0 Then strImageDir = InputBox("Please give the directory name " & _ "to process : ",wscript.scriptname, strPath) Else If InStr(Args(0),"/?") > 0 Or InStr(UCase(Args(0)),"/H") > 0 _ Or InStr(UCase(Args(0)),"/HELP") > 0 Then DisplayHelp Wscript.quit(0) Else strImageDir = Args(0) End if End if
Set objXML = CreateObject("Msxml2.DOMDocument.6.0") objXML.setProperty "SelectionLanguage", "XPath"
"***************************************************************** "** Determine if the file exists strXMLFile = strImageDir & "album.xml" Set objFSO = CreateObject("Scripting.FileSystemObject") If objFSO.FileExists(strXMLFile) Then "***************************************************************** "** Read the XML File objXML.load(strXMLFile) Else "***************************************************************** "** Create the XML File objXML.loadXML("") End If "***************************************************************** "** Process directory Set objImgDir = objFSO.GetFolder(strImageDir) For each objFile in objImgDir.Files If IsJPG(objFile.Name) Then arrTemp = split(objFile.Name, ".") strNode = arrTemp(0)
"***************************************************************** "** Determine if the node exists If Not XmlNodeExists(strChildNode, objXML) Then "***************************************************************** "** Get the root element of the xml document Set root = objXML.documentElement "***************************************************************** "** Create the new node Set newNode = objXML.createNode(1, strNode, "") root.appendChild newNode Set cNode = objXML.createNode(1, "alt", "") Set cNodeText = objXML.createNode(3, "", "") cNodeText.Text = strNode cNode.appendChild cNodeText newNode.appendChild cNode Set cNode = objXML.createNode(1, "Title", "") Set cNodeText = objXML.createNode(3, "", "") cNodeText.Text = strNode cNode.appendChild cNodeText newNode.appendChild cNode End If End If Next "***************************************************************** "** Save the xml file objXML.save(strXMLFile)
"***************************************************************** "** End the script wscript.quit
"***************************************************************** "** Function: XmlNodeExists "** Version: 1.0 "** Created: 1/12/2009 12:14PM "** Author: Adriaan Westra "** E-mail: "** "** Purpose / Comments: "** Determines if a node exists in XML "** "** Arguments : "** strNode :Name of the XML node "** oXML :XMl DOM Object
"** "** Changelog : "** 1/12/2009 12:16PM : Initial version "** "***************************************************************** Function XmlNodeExists( strNode, oXML ) On Error Resume next Set oNode = oXML.selectSingleNode(strNode) strNodetype = oNode.nodetype If err.number = 0 Then XmlNodeExists = True Else XmlNodeExists = False End if End Function "***************************************************************** "** Sub: DisplayHelp "** Version: 1.0 "** Created: 24-03-2003 8:22 "** Author: Adriaan Westra "** E-mail: "** "** Purpose / Comments: "** Display help for script "** "** Arguments : "** "** Wijzigingslog : "** 24-03-2003 8:22 : Initi雔e versie "** "***************************************************************** Sub DisplayHelp() strComment = string(2,"*") strCmntLine = String(79, "*") wscript.echo strCmntline wscript.echo strComment wscript.echo strComment & " Online help for " & _ Wscript.scriptname & " version : " & Version wscript.echo strComment wscript.echo strComment & " Usage : cscript " & _ Wscript.scriptname & " directoryname" wscript.echo strComment wscript.echo strComment & " Purpose : Create XML file " & _ "for all images in given directory." wscript.echo strComment wscript.echo strComment & " Author : " & Author wscript.echo strComment & " E-mail : " & Email wscript.echo strComment wscript.echo strCmntline End Sub "***************************************************************** "** Function: IsJPG "** Version: 1.0 "** Created: 12/29/2008 11:01PM "** Author: Adriaan Westra "** E-mail: "** "** Purpose / Comments: "** Determine if file is jpg image "** "** Arguments : "** strFilename : name of the file to check "** "** Wijzigingslog : "** 12/29/2008 11:02PM : Initi雔e versie "** "***************************************************************** Function IsJPG(strFilename) Set objRegExp = New RegExp objRegExp.Pattern = "w.jpg" objRegExp.IgnoreCase = True IsJPG = objRegExp.Test(strFileName) End Function