0

デフォルトで指定されたページに移動する Web ブラウザーを備えた C# アプリケーションがあります。

私がやりたいのは、ドキュメントが完全にロードされたら、タグ名 (ID/クラスではない) で html 要素を選択し、その外側の html を削除することですが、しばらく試してみましたが、まだ成功しませんでした..

これは私のイベントであり、これまでのところ

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

CLASS/ID を持たないフォーム要素を選択し、その外側にあるすべての HTML コード (outer-html) を削除して、それがページに表示される唯一のものになるようにしたいと考えています。

4

1 に答える 1

0

あなたは要素を削除したいと言っていますが、コードの後で「フォーム」の外側のすべてを削除したいと言っています。どちらが実際に必要かはわかりませんが、次の方法で 2 番目を実行できます。

まず、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;
于 2013-03-20T02:34:57.483 に答える