Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vbscript “如何重置对象”;数据;?_Vbscript - Fatal编程技术网

Vbscript “如何重置对象”;数据;?

Vbscript “如何重置对象”;数据;?,vbscript,Vbscript,例如,在字符串变量H和G中,我有html内容: Set oHtmlFile = CreateObject("HtmlFile") oHtmlFile.write H <do some parsing on oHtmlFile object> oHtmlFile.write G ... 设置oHtmlFile=CreateObject(“HtmlFile”) oHtmlFile.H oHtmlFile.G ... 如果我现在执行上述操作,oHTMLFile同时包含H和G内容 在

例如,在字符串变量
H
G
中,我有html内容:

Set oHtmlFile = CreateObject("HtmlFile")
oHtmlFile.write H

<do some parsing on oHtmlFile object>

oHtmlFile.write G
...
设置oHtmlFile=CreateObject(“HtmlFile”)
oHtmlFile.H
oHtmlFile.G
...
如果我现在执行上述操作,
oHTMLFile
同时包含
H
G
内容


在写入
G
数据之前,如何重置
oHtmlFile
对象,而不创建新对象(
CreateObject(“HtmlFile”)

如果不进一步了解您的实际问题,很难提出好的/实用的建议。理论上,您可以通过使用.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

鼻涕留作练习)

好的,谢谢你冗长的回答。我认为可能有重置对象数据的通用方法。移除根节点是一种很好的方法。Cheers@Ekkehard.Horner很抱歉向您强调,vbscript似乎是一种死语言,没有人回答:我这里有一个vbscript问题:如果您能阅读它并提出解决方案,对我会有很大帮助。谢谢乔
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"
-----------------
oDOM.childNodes(0).childNodes(1).removeChild oDOM.childNodes(0).childNodes(1).childNodes(0)