2013-03-20 47 views
0

我有一個C#應用程序,它有一個Web瀏覽器,默認導航到指定的頁面。網頁瀏覽器刪除元素的外部html

我想要做的就是當文檔已完全加載,選擇由標籤名(不ID /班),一個HTML元素,然後刪除其外部的HTML,但我已經嘗試了一段時間,仍然沒有成功..

這是我的活動,在那裏我得到到目前爲止

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
    { 
     var elementToDelete = webBrowser1.Document.GetElementsByTagName("form"); 
    } 

我要選擇具有無級/ ID是表單元素,並刪除所有的HTML代碼,它的外面(outer- HTML),所以它將是唯一可見的頁面上的東西。

+0

我編輯了你的標題。請參見「[應的問題包括‘標籤’,在他們的頭銜?(http://meta.stackexchange.com/questions/19190/)」,這裏的共識是「不,他們不應該」。 – 2013-03-20 01:53:28

+0

好的,謝謝。 – Dan 2013-03-20 01:57:19

回答

0

你說你想刪除一個元素,但是在你的代碼之後,你會說你想刪除「form」之外的所有東西。我不確定你真正想要的是什麼,但是你可以用下面的方法做第二個。

首先,請注意elementToDelete實際上是一個集合,而不是一個單一的元素,所以我們需要得到一個單一的元素。

var formElements = webBrowser1.Document.GetElementsByTagName("form"); 
var elementToSave = formElements.FirstOrDefault(); 
if(elementToSave == null) 
    throw new InvalidOperationException("No element named 'form'"); 

然後,您可以Document.DocumentText屬性設置爲「形式」的InnerHtml財產。你應該包裝內部HTML,以便它是一個有效的頁面,但這應該工作:

webBrowser1.Document.DocumentText = elementToSave.InnerHtml; 
+0

對不起,我現在修好了我的錯誤。所以,你給我的只是沒有外部html的情況下才會消失嗎? – Dan 2013-03-20 20:11:27

+0

@ Dan15這是正確的。 – 2013-03-21 03:26:01

相關問題