2016-03-05 3 views
0

У меня есть цикл For Each в VBScript, который выполняет итерацию через файлы и возвращает результаты.для каждого цикла с счетчиком

Код:

Sub IterateSearch(FolderPath) 
    On Error Resume Next 
    Set fldr = fso.GetFolder(FolderPath) 

    Set Fls = fldr.files 
    For Each thing in Fls 
    sFSpec = FSO.GetAbsolutePathName(thing) 
    objMSXML.async = True 
    objMSXML.load sFSpec 
    If 0 = objMSXML.parseError Then 
     Dim sXPath : sXPath = "//*[local-name()='namespace']/*[local-name()='querySubject']/*[local-name()='queryItem'][contains(., '"& searchTerm &"')]/ancestor-or-self::*/*[local-name()='name' and @locale='en']" 

     Dim querySubject : Set querySubject = objMSXML.selectSingleNode(sXPath) 
     path.innerHtml = path.innerHtml & thing.path &"<br>" 
     If querySubject Is Nothing Then 
     MsgBox sXPath, "failed" 
     Else 
     For Each node In objMSXML.selectNodes(sXPath) 
      xmldoc.innerHtml = xmldoc.innerHtml & node.text & " " & "<br>" 
'   ObjOutFile.WriteLine Linenum & " " & thing.path 
     Next 
'  xmldoc.innerHtml = xmldoc.innerHtml & "<br><br>" 
     End If 
    Else 
     MsgBox objMSXML.parseError.reason 
    End If 
    Next 

    Set fldrs = fldr.subfolders 
    For Each thing in fldrs 
    IterateSearch thing.path 
    Next 
End Sub 

В случае нескольких результатов печатаемых как:

> - File Path 1 
> - File Path 2 
> - File Paht 3 

- result set 1 
- result set 2 
- result set 3

Я хочу осуществить это таким образом, что результат должен быть напечатан как:

> 1. File Path 1 
- Result Set 1 
> 2. File Path 2 
- Result Set 2 
> 3. File Paht 3 
- Result Set 3

Думаю, мне нужно настроить цикл и выполнить счетчик, чтобы напечатать номер итерации. Пожалуйста, предложите.

ответ

1

Вы размещаете информацию в двух разных местах (path.innerHtml и xmldoc.innerHtml). Если вы хотите, чтобы они отображались в том порядке, в котором они были обработаны, вам нужно создать и добавить новые элементы в свой HTML-объект, например. например:

Set p = document.createElement("p") 
p.innerText = thing.Path 
document.body.appendChild p 

Set ul = document.CreateElement("ul") 
For Each node In objMSXML.selectNodes(sXPath) 
    Set li = document.createElement("li") 
    li.innerText = node.text 
    ul.appendChild li 
Next 
document.body.appendChild ul 
Смежные вопросы