2016-04-24 6 views
-1

どのようにvb.netの任意の属性を取得せずにWebBrowserドキュメントに任意のテキストを取得するには?どのように属性を取得せずにWebBrowserドキュメントにテキストを取得するには? vb.net

例1:

<h1>text here</h1> 

例2:

<h1 name="anything">text here</h1> 

がどのように私は "ここにテキストを" 得ることができますか?!

ありがとうございました。 :)

+0

私はあなたがオンラインになったことに気付くことができません。私の答えは役に立ったのですか? :) –

答えて

0

あなたは1)は、正規表現を使用し)すべて<h1>タグを反復処理または非常に最初の1、または2を取得するために、Webブラウザーのビルトインメソッドを使用することができますどちらか。すべてのタグは簡単ですが、あなただけのHtmlDocument.GetElementsByTagName()メソッドを使用する必要が反復処理組み込みメソッド

を使用して

。正規表現は、そのない

Dim h1Strings As New List(Of String) 

For Each h1Tag As HtmlElement In WebBrowser1.Document.GetElementsByTagName("h1") 
    h1Strings.Add(h1Tag.InnerText) 
Next 

を使用して正規表現

使用:

Dim h1Text As String = WebBrowser1.Document.GetElementsByTagName("h1")(0).InnerText 

反復するすべてのタグを介し:

は、最初の(時系列)タグを発見しましょうあなたが何をしているのか分かっていれば、大変です。あなたのコードファイルの最上部に置くと、このImports文を起動するには:

Imports System.Text.RegularExpressions 

は今、あなただけのWebブラウザーのDocumentText<h1>タグを検索する必要があります。

Dim h1Text As String = Regex.Match(WebBrowser1.DocumentText, "(?<=<h1[^<>\/]*>)((?!<\/h1>).)*(?=<\/h1>)", RegexOptions.IgnoreCase).Value 

正規表現パターンについて説明:

(?<=<h1[^<>\/]*>)((?!<\/h1>).)*(?=<\/h1>)

(?<= ...):マッチしたテキストは何...あるが先行されなければなりません。

<h1[^<>\/]*>:開封タグ<h1>と任意の属性を一致させてください。

[^<>\/]*<,>または/以外のすべての文字に一致します。

((?!<\/h1>).)*</h1>タグが先行ないすべての文字と一致します。

(?=<\/h1>): の後に</h1>タグが必要です。

+0

これがうまくいく場合は、投稿の左側にある緑のチェックマークを押して、受け入れられた回答としてマークすることを忘れないでください。 –

関連する問題