vbscript - Open file dialog to select XML file -
i have vbscript selects file c: drive , gets info tag on xml file want user able select file dialog cant seem done, here script:
dim xmldoc, objnodelist, plot, fin set xmldoc = createobject("msxml2.domdocument") xmldoc.load("c:\users\user\documents\vbscript\mlb.xml") set objnodelist = xmldoc.getelementsbytagname("league") set objfso=createobject("scripting.filesystemobject") ' create file outfile= "c:\users\user\documents\vbscript\leagues.txt" set objfile = objfso.createtextfile(outfile,true) if objnodelist.length > 0 each x in objnodelist plot= x.getattribute("name") 'write file objfile.write plot & vbcrlf next else msgbox " field not found." end if objfile.close
any help appreciated.
for windows xp can utilize useraccounts.commondialog
object, see documentation more details in short it's this:
set dlg = createobject("useraccounts.commondialog") dlg.initialdir = createobject("wscript.shell").specialfolders("mydocuments") dlg.filter = "xml files|*.xml" if dlg.showopen <> 0 set xmldoc = createobject("msxml2.domdocument") xmldoc.load(dlg.filename) ' code end if
note i'm using wscript.shell
object user's documents folder (so don't have hard-code it). i'd suggest same thing output file.
unfortunately object has been removed in windows 7 (maybe because of security issues) have utilize else. there many candidates, let's see of them.
easier method utilize comdlg32.dll
this:
set dlg = createobject("mscomdlg.commondialog.1") dlg.initialdir = createobject("wscript.shell").specialfolders("mydocuments") dlg.filter = "xml files|*.xml"
this dll seems don't registered on every system, if case have download it in c:\windows\system32 , register com objects regsrv32
.
a decent alternative utilize shell
object (explore methods on msdn):
set dlg = createobject("shell.application") set selectedfile = objshell.browseforfolder(0, "xml file:", &h00004000&, "c:\") if not selectedfile nil set xmldoc = createobject("msxml2.domdocument") xmldoc.load(selectedfile.self.path) end if
that isn't true open file dialog browse folder dialog files, improve solution utilize getopenfilename, code longer please refer this article total source , details. in short have import function:
declare function getopenfilename lib "comdlg32.dll" alias "getopenfilenamea" (ofn openfilename) boolean
you may want take this code on github, handles of tricky cases (yes such simple task isn't simple!!!)
xml vbscript
No comments:
Post a Comment