WinForm应用程序。我想抓取HTML网页的一部分并将其保存到本地html文件中。
我有一个本地文件,“empty.htm”(在主体中只包含“我是空的”),一个远程网页和两个WebBrowser控件。 WebBrowser1导航到远程页面,WebBrowser2导航到本地文件。两者都适当地显示其内容。
现在我尝试:
string rootIDToCopy = "InterestingDivID";
HtmlDocument htmlDocument = webBrowser1.Document;
HtmlElement rootElementToCopy =
htmlDocument.GetElementById(rootIDToCopy);
if (rootElementToCopy != null)
{
HtmlDocument dest = webBrowser2.Document;
if (dest != null)
{
HtmlElement destBody = dest.Body; // Point 1
destBody.AppendChild(rootElementToCopy); // Point 2
}
}
现在,当我在第1点时,我看到destBody存在,没有孩子并且有一个InnerHTML“我是空的”。 rootElementToCopy看起来有效(有三个孩子和一个好的InnerHtml)。但是,在第2点,我得到“值在预期范围内不会失败”(可能来自Windows.Forms.UnsafeNativeMethods.IHTMLElement2.InsertAdjacentElement)。
帮助将不胜感激!
答案 0 :(得分:1)
您可能不被允许:在DOM规范中查看WRONG_DOCUMENT_ERR
和ownerDocument
。
相反,我认为您可能必须将子树序列化为扁平字符串格式,然后再尝试将其插入到不同的文档中。