热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

每个循环到for循环的vbscript-vbscriptforeachlooptoforloop

HiIhavewrittenaprograminVBScript,nowIwanttoreplaceForEachloopwithaForloop.你好,我用V

Hi I have written a program in Vbscript, now I want to replace For Each loop with a For loop.

你好,我用Vbscript写了一个程序,现在我想用For循环替换每个循环。

For Each node In objMSXML.selectNodes(sXPath)                   
    Set li = document.createElement("li")
    li.innerText = i & " " & node.text
    ul.appendChild li
    i = i +1
Next

I have not been able to figure it out as I also need to know the number of nodes returned from Xpath.

我还没算出来,因为我还需要知道Xpath返回的节点数。

2 个解决方案

#1


2  

The node list returned by .SelectNodes() is a collection with a .length property that can be traversed using a zero-based integer index:

.SelectNodes()返回的节点列表是一个具有.length属性的集合,可以使用从零开始的整数索引遍历该集合:

Option Explicit

Dim oFS    : Set oFS  = CreateObject("Scripting.FileSystemObject")
Dim sFSpec : sFSpec   = oFS.GetAbsolutePathName("..\data\33921005.xml")
Dim oXML   : Set oXML = CreateObject("Msxml2.DOMDocument.6.0")
oXML.load sFSpec
If 0 = oXML.parseError Then
   Dim ndlName : Set ndlName = oXML.selectNodes("/Envelope/Body/Request/individual/hasName/*")
   Dim ndName
   For Each ndName In ndlName
       WScript.Echo ndName.tagName
   Next
   Dim iNd
   For iNd = 0 To ndlName.length - 1
       WScript.Echo iNd, ndlName(iNd).tagName
   Next
Else
   WScript.Echo oXML.parseError.reason
End If

output:

输出:

cscript 36053711.vbs
firstName
lastName
0 firstName
1 lastName

#2


3  

Following on from my initial comment.

根据我最初的评论。

The selectNodes() method returns a IXMLDOMNodeList object which is a NodeList collection.

selectNodes()方法返回一个IXMLDOMNodeList对象,它是一个NodeList集合。

As with any collection it contains members common to collection objects

与任何集合一样,它包含集合对象共有的成员

Properties

属性

  • length - Number of Nodes in the collection
  • 长度-集合中节点的数量

Methods

方法

  • item - Access to individual Nodes within the collection
  • 项目-对集合中各个节点的访问

For full list of member properties and methods see IXMLDOMNodeList Members

有关成员属性和方法的完整列表,请参阅IXMLDOMNodeList成员

There should be no logical reason why you need to change your For Each to a For loop as you can just use the length property to retrieve the number of Nodes in the collection.

应该没有逻辑理由需要将For Each改为For循环,因为您可以使用length属性来检索集合中的节点数量。

Option Explicit

Dim node, nodes, li, i, sXPath, NumberOfNodes
Set nodes = objMSXML.selectNodes(sXPath)
'Retrieve number of Nodes
NumberOfNodes = nodes.length
For Each node In nodes                   
    Set li = document.createElement("li")
    li.innerText = i & " " & node.text
    ul.appendChild li
    i = i +1
Next

Useful Links

  • Document Object Model (Core) Level 1
  • 文档对象模型(核心)级别1
  • MSDN - IXMLDOMNodeList
  • MSDN——IXMLDOMNodeList

推荐阅读
  • <tablecellspacing0cellpadding0>&l ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 特需要使用集合的时候,无法找到VBScript中的Collection对象;到处找不到,那就自己写一个吧!注:1.需要VBScript5.0或更高版本,使用Class及 ... [详细]
  • 【编程游戏】贺岁霓虹灯。(第一名奖励10000可用分)效果图评分参观[目前Firefox中好使,其他浏览器需复制到本地,存为html文件看效果]<html><head>&l ... [详细]
  • Ihaveasimplequestion,butIvesearchedforthisandcouldntfindanyhelpfultopics..我有一个简单的问 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 本文总结了在编写JS代码时,不同浏览器间的兼容性差异,并提供了相应的解决方法。其中包括阻止默认事件的代码示例和猎取兄弟节点的函数。这些方法可以帮助开发者在不同浏览器上实现一致的功能。 ... [详细]
  • Icreatecodelikethis我创建这样的代码aArray(-fx,-cr,-ie)Setiim1CreateObject(imacros)i ... [详细]
author-avatar
____洋果子
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有