webdevqa.jp.net

vb.netでHTMLを解析する方法

Vb.netでHTMLを解析する簡単な方法があるかどうか知りたいのですが。 HTMLはXMLの厳密なサブセットではないことを知っていますが、そのように扱うことができればいいでしょう。 VB.netでXMLのような方法でHTMLを解析できるものはありますか?

16
tooleb

私は好きです Html Agility pack -とても開発者フレンドリーで、無料で、ソースコードが利用できます。

7
TcKs

'prog refも追加:Microsoft.mshtml

その後、ページに:

Imports mshtml

Function parseMyHtml(ByVal htmlToParse$) As String
    Dim htmlDocument As IHTMLDocument2 = New HTMLDocumentClass()
    htmlDocument.write(htmlToParse)
    htmlDocument.close()

    Dim allElements As IHTMLElementCollection = htmlDocument.body.all

    Dim allInputs As IHTMLElementCollection = allElements.tags("a")
    Dim element As IHTMLElement
    For Each element In allInputs
        element.title = element.innerText
    Next

    Return htmlDocument.body.innerHTML
End Function

見つかりました ここ

13

敏捷性パックを使用せず、mshtmlライブラリを使用してdomにアクセスします。これは、ieが使用するものであり、HTML要素を通過するのに最適です。

敏捷性パックは厄介で不必要にハッキーです。私に尋ねると、mshtmlが最適です。 msdnで調べてください。

4

HTMLがXHTML標準に準拠している場合、System.XML名前空間クラスを使用して、多くの解析と処理を実行できます。

一方、解析しているのがWeb開発者が「タグスープ」と呼ぶものである場合は、 HTML Agility Pack のようなサードパーティのパーサーが必要になります。

各ブラウザーがタグスープをわずかに異なる方法で解析するため、ブラウザーがHTMLをどのように解釈するかを理解しようとしている場合、これは問題の部分的な解決策にすぎません。

4

整形式ですか? HTMLが実際に整形式である場合、XMLとして解析できます。タグスープであり、閉じられていない要素などがある場合、サードパーティのソリューションを探し回る必要があると思います。

1
Andrew Hare