`
hipeace87
  • 浏览: 173692 次
  • 性别: Icon_minigender_1
  • 来自: 山东菏泽
社区版块
存档分类
最新评论

VBS操作XML文档,拷贝结点

阅读更多

Dim xmlDoc,xmlRoot,xmlNode,lastNode,newNode
Dim doc,docRoot,i,flag
Dim strNodeName,strPath,docPath
Dim xmlFolder,docFolder,oshell
Set oshell = CreateObject("Shell.Application")
Set xmlFolder = oshell.BrowseForFolder(0, "选择目标XML文档所在的目录", 0, ssfDRIVES)
  strPath = xmlFolder.Self.Path & "\jz-mapping.xml"
Set docFolder = oshell.BrowseForFolder(0,"请选择源XML文档所在的目录",0,ssfDRIVES)
  docPath = docFolder.Self.Path & "\jz-mapping.xml"
strNodeName = InputBox ("请输入要拷贝的结点ID值","输入ID值")

flag = True
Rem 加载目标文件
Set xmlDoc = CreateObject("Microsoft.XMLDOM")
xmlDoc.async = False
xmlDoc.load strPath
If xmlDoc.parseError.errorCode <> 0 Then
  Wscript.Echo "错误:" & Chr(13) & xmlDoc.parseError.reason
End If
Set xmlRoot = xmlDoc.documentElement

i = 0
Do While i<xmlRoot.childNodes.length
Set newNode = xmlRoot.childNodes.item(i)
  If newNode.getAttribute("id") = strNodeName Then
  flag = False
  Exit Do
    Else
  i = i + 1
  End If
loop

If flag Then 
    Rem 加载源文件,查找要拷贝的结点
    Set doc =CreateObject("Microsoft.XMLDOM")
    doc.async = False
    doc.load docPath
    If doc.parseError.errorCode <> 0 Then
    Wscript.Echo "错误:" & Chr(13) & doc.parseError.reason
    End If
    Set docRoot = doc.documentElement
    i = 0
    Do While i < docRoot.childNodes.length
    Set newNode = docRoot.childNodes.item(i)
    If newNode.getAttribute("id") = strNodeName Then
    Exit Do
    Else
    i = i + 1
    End If
    loop
   
    Set lastNode = xmlRoot.lastChild
    xmlDoc.documentElement.insertBefore newNode,lastNode
    xmlDoc.Save strPath
Else
MsgBox  "已存在要拷贝的结点!",,"Bug提示"
End If

上次发的那个要在CMD下运行,还要传参数
这个在运行时会弹出相应的对话框
方便了操作
1
0
分享到:
评论
1 楼 hipeace87 2008-12-11  
Windows XP 上,您可以使用“UserAccounts.CommonDialog”对象向用户显示一个标准的“文件打开”对话框。可以用类似以下代码的脚本:

Set objDialog = CreateObject("UserAccounts.CommonDialog")

objDialog.Filter = "All Files|*.*"
objDialog.InitialDir = "C:\"
intResult = objDialog.ShowOpen

If intResult = 0 Then
Wscript.Quit
Else Wscript.Echo objDialog.FileName
End If

这是一个小脚本,所以让我们逐行进行解释吧。我们首先创建一个对 UserAccounts.CommonDialog 对象的对象引用(名为“objDialog”)。接着,我们设置对话框的“筛选”属性。我们要显示所有文件,所以我们将筛选设置成这样:

objDialog.Filter = "All Files|*.*"

假如我们只想显示文本文件,那该怎么办?在这种情况下,我们将使用以下筛选:

objDialog.Filter = "Text Files|*.txt"

您也许能够看出它是如何运行的:我们为文件类型提供说明 (Text Files),然后插入一个竖线分隔符 (|),最后使用标准的通配符来指示所有 .txt 文件 (*.txt)。是不是想默认显示 .txt 文件,然后为用户提供查看所有文件的选项?那么可以使用以下代码:

objDialog.Filter = "Text Files|*.txt|All Files|*.*"

试一试,您就明白我们的意思了。

然后,我们指定默认文件夹。默认情况下,我们希望对话框显示位于驱动器 C 的根文件夹中的文件,所以我们这样设置“InitialDir”属性:

objDialog.InitialDir = "C:\"

希望显示 C:\Windows 文件夹中的文件吗?那么可以使用以下代码:

objDialog.InitialDir = "C:\Windows"

不必担心:这是一个真正的“文件打开”对话框,所以您可以随意单击,并且可以随时停下来。您从 C:\Windows 开始并不意味着您只能打开该文件夹中的文件。

最后,我们使用下面这行代码显示对话框:

intResult = objDialog.ShowOpen

现在,我们只需坐下来,等待用户选择文件并单击“确定”(或者等待用户单击“取消”)。如果用户单击“取消”,则变量 intResult 将被设置为 0。在我们的脚本中,我们检查 intResult 的值,如果是 0,我们将只需要使用 Wscript.Quit 来终止此脚本。

但是如果用户实际上选择了文件并单击了“确定”,那该怎么办?在这种情况下,intResult 将被设置为 -1,“FileDialog”属性将被设置为所选文件的路径名。我们的脚本只回显路径名,这意味着我们将得到类似以下内容的输出:

C:\WINDOWS\Prairie Wind.bmp

相关推荐

    vbs合并word文档

    通过VBS脚本,我们可以实现对Word文档的各种自动化操作,如打开、编辑、保存等。 #### 三、VBS合并Word文档原理及步骤 在VBS脚本中合并Word文档主要涉及以下几个关键步骤: 1. **初始化环境**:首先,我们需要...

    vbs 合并word文档

    vbs 合并word文档

    vbs对 word的操作

    在VBS中操作Word,主要是通过与Word的对象模型进行交互,利用各种对象、方法和属性来实现对Word文档的各种操作。 首先,核心的两个对象是`Application`对象和`Document`对象。`Application`对象代表Word应用程序...

    html.js.css.vbs.xml

    绝对不错的工具书~~大全html.js.css.vbs.xml

    从XML文件中获取信息的vbs代码

    该脚本利用了Microsoft XML (MSXML) 库来解析XML文档,并使用XPath语言定位到指定的XML元素。 首先,脚本创建了一个`Msxml2.DOMDocument.6.0`对象,这是MSXML库中的一个DOM(文档对象模型)实现,用于加载和处理XML...

    VBS帮助文档

    VBS,全称为Visual Basic Script,是一种基于Visual Basic语法的脚本语言,广泛应用于Windows操作系统环境中,特别是网页、系统管理和自动化任务中。VBS帮助文档是学习和掌握VBS编程的重要资源,它通常包含了VBS的...

    微软官方VBS脚本手册.zip

    6. **XML处理**:VBS可以使用MSXML库处理XML文档,如创建、解析和修改XML。DOM(Document Object Model)模型是其中的核心概念。 7. **正则表达式**:VBS提供了RegEx对象,用于执行复杂的字符串匹配和替换,这对于...

    vbs 操作网页.txt

    vbs 操作网页.txt

    wincc使用VBS操作趋势曲线.docx

    "WinCC 使用 VBS 脚本操作趋势曲线" WinCC 是 Siemens 公司推出的-human-machine-interface(HMI)软件,用于 industrial automation 领域。WinCC 提供了强大的脚本编程功能,允许用户使用 VBS(Visual Basic ...

    Vbs.rar_vbs api文档_vbs调控API

    本文档将深入探讨VBS API的相关知识点,并通过《Vbs编程高手学习手册》中的内容来展开讨论。 1. **VBScript基础**:VBS基于Visual Basic语法,支持变量声明、数据类型、流程控制(如If...Then...Else、For...Next、...

    在wincc中通过vbs操作SQL

    在本文中,我们将探讨如何在WinCC中通过Visual Basic Script (VBS)来操作SQL Server 2005数据库,实现数据的存储和查询功能。 首先,确保你的WinCC项目已经与SQL Server 2005集成。自WinCC 6.2版本起,系统开始支持...

    Vbs操作wincc画面脚本总结

    VBs操作WinCC画面脚本是工业自动化领域中一个非常实用的技术,它允许开发者通过编写脚本来控制WinCC(Windows Control Center)系统中的人机界面(HMI)。WinCC是一款广泛应用于制造业的监控软件,能够实现数据采集...

    QTP操作xml文件方法

    在VBS(Visual Basic Scripting Edition)环境中,没有内置的DOM或SAX解析器,但我们可以使用Microsoft的MSXML库(Microsoft XML Core Services),它提供了XML DOM接口。以下是如何使用MSXML库解析XML文件: ```...

    VBS_VBS操作EXCLE排序

    ### VBS 操作 Excel 排序详解 在 IT 领域中,VBS (Visual Basic Scripting Edition) 是一种非常实用的脚本语言,它能够帮助用户实现自动化任务、数据处理等多种功能。特别是对于 Microsoft Office 应用程序的操作,...

    VBS操作Excel常见方法

    在VBScript(VBS)中操作Microsoft Excel是一项常见的任务,特别是在自动化办公流程或生成报告时。以下是一些关键知识点和步骤,用于通过VBS与Excel交互: 1. **创建Excel对象**: 使用`CreateObject`函数动态创建...

Global site tag (gtag.js) - Google Analytics