2016-05-07 8 views
1

müssen einige informationen aus einer HTML-datei extrahieren und ein div ausziehen und ich muss klassische asp verwenden.classic asp htmlfile objekt entfernen kind

Ich verwende Htmlfile Objekt und es funktioniert alles, außer, wenn ich versuche, die div

hier den relevanten Teil der Routine zu entfernen:

....... 

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 

es gibt

Htmlfile Fehler '80070057'
Ungültiges Argument
Zeile 57

Wo Befehl Frame.Removechild(div)

Lösung oder einen Link vorschlagen können, wo Dokumentation über Htmlfile Objekt finden .. da ich viel, aber anscheinend mit falschen Keywords gegoogelt

Dank

Joe

Antwort

1

I Denken Sie, dass die Docs für HTMLFILE here starten.

Nach der Dokumentation für removeChild, die Beschwörung benötigt Knoten X zu entfernen ist:

X.parentNode.removeChild X 

Wenn Sie ändern den Lösch Demo-Code von here

oDOM.childNodes(0).childNodes(1).removeChild DOM.childNodes(0).childNodes(1).childNodes(0) 

zu

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

sollten Sie

erhalten

...

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

Hallo! Danke für prompte Antwort .. Ich habe verstanden, wo ich falsch lag, obwohl, wissend, die ID des div der einfachste Weg, um es zu entfernen war die 'removeNode' Methode .. aber ich entdeckte gerade jetzt nach dem Lesen auf den Link, den Sie mir überreicht. Danke nochmal! – Joe