【发布时间】:2014-01-14 21:58:07
【问题描述】:
我有一个充满 XML 档案的目录。 大概有 400 个 XML,我需要使用 VBScript 使用它们上存在的数据重命名它们中的每一个。
我已经编写了一些可以运行的代码,但仍然遇到问题:
@EDIT -> 已解决。我找到了一个“替换”功能。谢谢,埃克哈德!
- 我用于重命名文件的某些节点值包含非法字符(更准确地说是“/”),这导致 VBScript 无法保存它,返回“找不到路径”错误。在使用它重命名文件之前,我如何设法更改每个“Operadora”值的每个“/”(如果它们存在于变量中假定的当前 Operadora 中)?我会将其更改为“-”。
代码如下:
Dim Caminho
Dim FSO
Dim FLD
Dim fil
Dim nomeErrado
Dim nomeCerto
Dim xmlDoc
Dim OrganisationInfo, Operadora, recentDate, resultOperadora
Set xmlDoc = CreateObject("Msxml2.DOMDocument.6.0") 'Msxml2.DOMDocument / Microsoft.XMLDOM
xmlDoc.Async = "False"
xmlDoc.setProperty "SelectionLanguage", "XPath"
Caminho = "C:\Users\f8057612\Desktop\Bancos\Script_Operadoras"
Set FSO = CreateObject("Scripting.FileSystemObject") 'Create the instance of the FSO
Set FLD = FSO.GetFolder(Caminho) 'Set the folder you want to search. NOTE - some antivirus may not like this
For Each fil in FLD.Files
If LCase(FSO.GetExtensionName(fil)) = "xml" Then
xmlDoc.Load fil.Path
nomeErrado = fil.Path
If xmlDoc.ParseError = 0 Then
For Each OrganisationInfo In xmlDoc.SelectNodes("//OrganisationInfo/OrganisationName")
Operadora = OrganisationInfo.Text
Next
resultOperadora = Replace(Operadora, "/", "-")
nomeCerto = "IR21 - " & resultOperadora & " - " & ".xml"
WScript.Echo "_" & nomeErrado & "_" & vbNewLine & "_" & nomeCerto & "_"
FSO.MoveFile nomeErrado, nomeCerto
End If
End If
Next
Set FLD = Nothing
Set FSO = Nothing
【问题讨论】:
-
第 32 行似乎是
End If。你能标出这条线吗?
标签: xml xpath vbscript xml-parsing