打开文件对话框以选择XML文件
我有一个VBScript,可以从c:驱动器中选择一个文件,并从XML文件的标记中获取信息,但我希望用户能够从对话框中选择该文件,但我似乎无法完成,这是我的脚本:打开文件对话框以选择XML文件,xml,vbscript,Xml,Vbscript,我有一个VBScript,可以从c:驱动器中选择一个文件,并从XML文件的标记中获取信息,但我希望用户能够从对话框中选择该文件,但我似乎无法完成,这是我的脚本: Dim xmlDoc, objNodeList, plot, fin Set xmlDoc = CreateObject("Msxml2.DOMDocument") xmlDoc.load("C:\Users\User\Documents\vbscript\mlb.xml") Set objNodeList = xmlDoc.getE
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 then
For each x in objNodeList
plot= x.getAttribute("name")
'Write to File
objFile.Write plot & vbCrLf
Next
Else
msgbox " field not found."
End If
objFile.Close
任何帮助都将不胜感激。对于Windows XP,您可以使用
用户帐户。CommonDialog
对象,有关详细信息,请参阅文档,但简而言之,它是这样的:
Set dlg = CreateObject("UserAccounts.CommonDialog")
dlg.InitialDir = CreateObject("WScript.Shell").SpecialFolders("MyDocuments")
dlg.Filter = "XML files|*.xml"
If dlg.ShowOpen <> 0 Then
Set xmlDoc = CreateObject("Msxml2.DOMDocument")
xmlDoc.load(dlg.FileName)
' Your code
End If
Set dlg = CreateObject("MSComDlg.CommonDialog.1")
dlg.InitialDir = CreateObject("WScript.Shell").SpecialFolders("MyDocuments")
dlg.Filter = "XML files|*.xml"
这个DLL似乎不是在每个系统上都注册的,如果是这样的话,您必须在c:\windows\system32中,用regsrv32
注册COM对象
另一个不错的选择是使用Shell
对象(在上探索其方法):
这不是一个真正的“打开文件”对话框,而是一个“浏览文件夹”对话框,其中包含文件,更好的解决方案是使用,代码更长,所以请参阅以获取完整的源代码和详细信息。简而言之,您必须导入该函数:
Declare Function GetOpenFileName Lib "comdlg32.dll"
Alias "GetOpenFileNameA" (OFN As OPENFILENAME) As Boolean
您可能还想看看,它可以处理大多数棘手的情况(是的,这样简单的任务最终不是那么简单!!!)我遇到一个错误:ActiveX组件无法创建对象“UserAccounts.CommonDialog”,就像我使用Windows的方式一样7@RiquelmyMelara是的,它已在Windows Vista中删除,我添加了更多示例(还有…实际上是源代码的链接)谢谢你的帮助!
Declare Function GetOpenFileName Lib "comdlg32.dll"
Alias "GetOpenFileNameA" (OFN As OPENFILENAME) As Boolean