将信息保存到一个XML文件的vbs代码


  本文标签:信息,XML

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