2016-03-18 49 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

哪個頁面?此代碼是否在HTA中運行?一個經典的ASP頁面? –

回答

1

你在你的代碼的兩個問題:

  • node不是一個集合,所以For Each element In node失敗。你可能在你的HTA是隱藏該錯誤的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