Sla informatie op als XML file.

Dit script is een voorbeeld voor hoe je informatie opslaat in een XML file met MSXML. De voorbeeld XML file is gebruilr voor het photo album op de 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�le 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�le versie                          
'**                                                               
'*****************************************************************
Function IsJPG(strFilename)                                       
   Set objRegExp = New RegExp                                     
   objRegExp.Pattern = "\w.jpg"                                   
   objRegExp.IgnoreCase = True                                    
   IsJPG = objRegExp.Test(strFileName)                            
End Function