gpt4 book ai didi

xml - 打开文件对话框以选择 XML 文件

转载 作者:行者123 更新时间:2023-12-05 07:50:21 28 4
gpt4 key购买 nike

我有一个 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.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,您可以使用 UserAccounts.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

请注意,我还使用 WScript.Shell 对象来获取用户的文档文件夹(因此您不必对其进行硬编码)。我建议对输出文件也做同样的事情。

不幸的是,此对象已在 Windows 7 中删除(可能是因为安全问题),因此您必须使用其他对象。有很多候选人,让我们看看其中的一些。

更简单的方法是像这样使用 comdlg32.dll:

Set dlg = CreateObject("MSComDlg.CommonDialog.1")
dlg.InitialDir = CreateObject("WScript.Shell").SpecialFolders("MyDocuments")
dlg.Filter = "XML files|*.xml"

此 DLL 似乎并未在每个系统上注册,如果是这种情况,您必须 download it在 c:\windows\system32 中并使用 regsrv32 注册 COM 对象。

一个不错的选择是使用 Shell 对象(在 MSDN 上探索它的方法):

Set dlg = CreateObject("Shell.Application")
Set selectedFile = objShell.BrowseForFolder(0, "XML file:", &H00004000&, "C:\")

If Not selectedFile Is Nothing Then
Set xmlDoc = CreateObject("Msxml2.DOMDocument")
xmlDoc.load(selectedFile.Self.Path)
End If

这不是真正的打开文件对话框,而是浏览文件夹对话框,更好的解决方案是使用GetOpenFileName ,代码较长请引用this article完整的来源和细节。简而言之,您必须导入该函数:

Declare Function GetOpenFileName Lib "comdlg32.dll" 
Alias "GetOpenFileNameA" (OFN As OPENFILENAME) As Boolean

您可能还想看看 this code on GitHub ,它处理了大多数棘手的情况(是的,这样简单的任务最终并不是那么简单!!!)

关于xml - 打开文件对话框以选择 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36275942/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com