2016-03-18 6 views
0

Я пытаюсь вытолкнуть свой вывод из кода VBScript в строке таблицы и ячейке таблицы.Генерирующий стол

Мой код:

Set table = document.CreateElement("table") 
i = 0 
For Each node In objMSXML.selectNodes(sXPath) 
    Set tr = document.createElement("tr") 
    Set td = document.createElement("td") 
    For Each element In node 
     td.innerText = element.parentNode.nodeName & "->" & element.text 
     tr.appendChild td 
    Next 
    table.appendChild tr 
    ObjOutFile.WriteLine node.parentNode.nodeName & "->" & node.text 
    i = i + 1 
Next 
document.body.appendChild table 

Что с ней? он не работает, пока я могу нажать вывод в списке.

Редактировать Я использую этот код, он печатает выходные данные, как ожидалось, но таблица не заполняется.

ObjOutFile.WriteLine thing.path 
document.body.appendChild p 
Set tbody = document.createElement("tbody") 
For Each node In objMSXML.selectNodes(sXPath) 
    Set trow = document.createElement("tr") 
    Set tcol = document.createElement("td") 
    tcol.innerText = tcol.innerText & node.parentNode.nodeName & "->" & node.text 
    ObjOutFile.WriteLine node.parentNode.nodeName & "->" & node.text 
    trow.appendChild(tcol) 
    tbody.appendChild(trow) 
    'ObjOutFile.WriteLine node.parentNode.nodeName & "->" & node.text 
Next 
document.appendChild(tbody) 

В ObjOutFile.writeLine печатает как:

C:\Users\abc\Desktop\samp.txt 
hamster->AbcPos 
hamster->Database Layer 
hairyStyle->qskxyz 
hairyGirl->qixyz 
hairyGirl->abc 
hairyGirl->def
+0

«не работает» является недостаточным описанием проблемы. Что * точно * не работает должным образом? –

+0

Он не заполняет ни одну таблицу на странице, ни таблицу в пустой, такой невидимой. но мои переменные имеют данные. Итак, стол должен прийти – user2816085

+0

На какой странице? Этот код работает в ОМТ? Классическая страница ASP? –

ответ

1

У вас есть две проблемы в вашем коде:

  • node не коллекция, поэтому For Each element In node не удается. Вы, наверное, есть On Error Resume Next elswhere в вашем ОМТ, которые скрывают эту ошибку, потому что в противном случае вы будете видеть сообщение об ошибке, как это:

    Объект не поддерживает это свойство или метод.

  • Вам нужно добавить строки таблицы в <tbody> элемент первого (см this related question).

Изменить код на что-то вроде этого (и удалить On Error Resume Next):

Set table = document.createElement("table") 
Set tbody = document.createElement("tbody") 
i = 0 
For Each node In objMSXML.selectNodes(sXPath) 
    Set tr = document.createElement("tr") 
    Set td = document.createElement("td") 
    td.innerText = node.parentNode.nodeName & "->" & node.text 
    tr.appendChild td 
    tbody.appendChild tr 
    i = i + 1 
Next 
table.appendChild tbody 
document.body.appendChild table 
+0

Спасибо, что ссылка была полезна. понять проблему. – user2816085

0

Вы хотите строку для каждого узла и столбец для каждого элемента текущего узла. Так

For Each node In objMSXML.selectNodes(sXPath) 
    Set tr = document.createElement("tr") 
    Set td = document.createElement("td") 
    For Each element In node 
     td.innerText = element.parentNode.nodeName & "->" & element.text 
     ... 

должен быть

For Each node In objMSXML.selectNodes(sXPath) 
    Set tr = document.createElement("tr") 
    For Each element In node 
     Set td = document.createElement("td") 
     td.innerText = element.parentNode.nodeName & "->" & element.text 
     ... 
+0

См. Изменения, я что-то упустил – user2816085

Смежные вопросы