经典的asp htmlfile对象删除子

时间:2016-05-07 09:28:57

标签: html dom asp-classic removechild

必须从HTML文件中提取一些信息并删除div,我需要使用经典的asp。

我正在使用HTMLFile对象,除非我尝试删除div

,否则它可以正常运行

这里是例程的相关部分:

.......

Set HTML = CreateObject("HTMLFile")
Set Frame = CreateObject("HTMLFile")  

.........  

tmp=t.ReadAll
HTML.Write tmp
t.close

Set SPN=HTML.getElementsByTagName("div")
for each sp in SPN
    if sp.getAttribute("id")="frame" then
        Frame.write sp.InnerHTML
        exit for
    end if
next        

Set Divs=Frame.getElementsByTagName("div")
for each div in Divs
    if div.getAttribute("id")="link_1" then
        Frame.removeChild(div)
    end if
next

它返回

  

htmlfile错误'80070057'
  参数无效   第57行

其中命令为Frame.Removechild(div)

可以建议解决方案或链接,在那里可以找到关于HTMLFile对象的文档..因为我搜索了很多但显然有错误的关键字

谢谢

1 个答案:

答案 0 :(得分:1)

认为 HTMLFILE的文档开始here

根据removeChild的文档,删除节点X所需的咒语是:

X.parentNode.removeChild X

如果您更改了here

中的删除演示代码
oDOM.childNodes(0).childNodes(1).removeChild DOM.childNodes(0).childNodes(1).childNodes(0)

  Set p = oDOM.getElementsByTagName("P")(0)
  p.parentNode.removeChild p
  WScript.Echo "After deleting first P"
  dumpDoc oDOM

你应该得到

...

-----------------
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"
-----------------
...