,就很难拿出好的/实用的建议。从理论上讲,你可以通过使用像.inner/outerHTLM和.innerTEXT这样的属性或调用像.create *,.remove *或.append *等函数来操作oHtmlFile的文档树。
在代码:
Dim oDOM : Set oDOM = CreateObject("HTMLFILE")
Dim sHTML : sHTML = "<html><head></head><body></body></html>"
WScript.Echo "Empty", TypeName(oDOM), "oDOM"
dumpDoc oDOM
oDOM.write sHTML
WScript.Echo "After .write", qq(sHTML)
dumpDoc oDOM
sHTML = "<p>G</p><p>H</p>"
oDOM.childNodes(0).childNodes(1).innerHTML = sHTML
WScript.Echo "After setting body's .innerHTML to", qq(sHTML)
dumpDoc oDOM
sHTML = "pipapo"
oDOM.childNodes(0).childNodes(1).childNodes(1).innerTEXT = sHTML
WScript.Echo "After changing second P's .innerTEXT to", qq(sHTML)
dumpDoc oDOM
oDOM.childNodes(0).childNodes(1).removeChild oDOM.childNodes(0).childNodes(1).childNodes(0)
WScript.Echo "After deleting first P"
dumpDoc oDOM
Dim oNode : Set oNode = oDOM.createElement("h1")
oNode.appendChild oDOM.createTextNode("tritratrulala")
oDOM.childNodes(0).childNodes(1).appendChild oNode
WScript.Echo "After using DOM to append an H1"
dumpDoc oDOM
sHTML = "<span>abracadabra</span>"
oDOM.childNodes(0).childNodes(1).childNodes(0).outerHTML = sHTML
WScript.Echo "After overwriting first P's outerHTML", qq(sHTML)
dumpDoc oDOM
Sub dumpDoc(oDOM)
If oDOM.documentElement Is Nothing Then
WScript.Echo "", "oDOM.documentElement Is Nothing"
WScript.Echo "", "oDOM.childNodes.length", oDOM.childNodes.length
Else
WScript.Echo "", "oDOM.documentElement:", oDOM.documentElement.tagName
WScript.Echo "", "oDOM.childNodes.length", oDOM.childNodes.length
dumpTree oDOM.documentElement, 2
End If
WScript.Echo "-----------------"
End Sub
Sub dumpTree(oNode, nL)
Select Case oNode.nodeType
Case 1
WScript.Echo Space(nL), oNode.nodeType, oNode.tagName, qq(Replace(oNode.innerHTML, vbCrLf, ""))
Dim oChild
For Each oChild In oNode.childNodes
dumpTree oChild, nL + 1
Next
Case 3
WScript.Echo Space(nL), oNode.nodeType, oNode.nodeName, qq(Replace(oNode.nodeValue, vbCrLf, ""))
End Select
End Sub
输出:
demoHtmlFile - demo HtmlFile
===============================================================================
Empty HTMLDocument oDOM
oDOM.documentElement Is Nothing
oDOM.childNodes.length 0
-----------------
After .write "<html><head></head><body></body></html>"
oDOM.documentElement: HTML
oDOM.childNodes.length 1
1 HTML "<HEAD></HEAD><BODY></BODY>"
1 HEAD ""
1 TITLE ""
1 BODY ""
-----------------
After setting body's .innerHTML to "<p>G</p><p>H</p>"
oDOM.documentElement: HTML
oDOM.childNodes.length 1
1 HTML "<HEAD></HEAD><BODY><P>G</P><P>H</P></BODY>"
1 HEAD ""
1 TITLE ""
1 BODY "<P>G</P><P>H</P>"
1 P "G"
3 #text "G"
1 P "H"
3 #text "H"
-----------------
After changing second P's .innerTEXT to "pipapo"
oDOM.documentElement: HTML
oDOM.childNodes.length 1
1 HTML "<HEAD></HEAD><BODY><P>G</P><P>pipapo</P></BODY>"
1 HEAD ""
1 TITLE ""
1 BODY "<P>G</P><P>pipapo</P>"
1 P "G"
3 #text "G"
1 P "pipapo"
3 #text "pipapo"
-----------------
After deleting first P
oDOM.documentElement: HTML
oDOM.childNodes.length 1
1 HTML "<HEAD></HEAD><BODY><P>pipapo</P></BODY>"
1 HEAD ""
1 TITLE ""
1 BODY "<P>pipapo</P>"
1 P "pipapo"
3 #text "pipapo"
-----------------
After using DOM to append an H1
oDOM.documentElement: HTML
oDOM.childNodes.length 1
1 HTML "<HEAD></HEAD><BODY><P>pipapo</P><H1>tritratrulala</H1></BODY>"
1 HEAD ""
1 TITLE ""
1 BODY "<P>pipapo</P><H1>tritratrulala</H1>"
1 P "pipapo"
3 #text "pipapo"
1 H1 "tritratrulala"
3 #text "tritratrulala"
-----------------
After overwriting first P's outerHTML "<span>abracadabra</span>"
oDOM.documentElement: HTML
oDOM.childNodes.length 1
1 HTML "<HEAD></HEAD><BODY><SPAN>abracadabra</SPAN><H1>tritratrulala</H1></BODY>"
1 HEAD ""
1 TITLE ""
1 BODY "<SPAN>abracadabra</SPAN><H1>tritratrulala</H1>"
1 SPAN "abracadabra"
3 #text "abracadabra"
1 H1 "tritratrulala"
3 #text "tritratrulala"
-----------------
(QQ(),节点类型的常数,和一个策略,以避免那些
oDOM.childNodes(0).childNodes(1).removeChild oDOM.childNodes(0).childNodes(1).childNodes(0)
nastities被保留为运动)
好的,谢谢你的冗长答案WER。我认为有可能是重置对象数据的一般方法。删除根节点是很好的方法。干杯 – theta 2012-08-14 13:49:25
@ Ekkehard.Horner 对不起,强调你,但似乎vbscript是一种死语言,没有人回答: 我有一个VBScript问题在这里:[链接](http://stackoverflow.com/questions/37086814/classic-asp -htmlfile-object-remove-child) 如果你可以如此友善地阅读它,并建议解决方案对我来说是一个很大的帮助。谢谢。乔 – Joe 2016-05-10 02:32:11