vb.netでHTMLを解析する簡単な方法があるかどうか知りたいです。HTMLはXMLの厳密なサブセットではないことは知っていますが、そのように扱うことができれば素晴らしいと思います。VB.netでXMLのような方法でHTMLを解析できるものはありますか?
5 に答える
'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
ここにあるように:
私はHtmlAgilitypackが好きです-それは非常に開発者にやさしく、無料で、ソースコードが利用可能です。
敏捷性パックを使用しないでください。mshtml ライブラリを使用して dom にアクセスするだけです。これは ie が使用するものであり、HTML 要素を通過するのに最適です。
あなたが私に尋ねると、敏捷性パックは厄介で不必要にハッキーです.mshtmlは行く方法です. msdnで調べてください。
HTMLがXHTML標準に準拠している場合は、System.XML名前空間クラスを使用して多くの解析と処理を行うことができます。
一方、解析しているのがWeb開発者が「タグスープ」と呼んでいるものである場合は、HTMLAgilityPackなどのサードパーティのパーサーが必要になります。
各ブラウザがタグスープをわずかに異なる方法で解析するときに、ブラウザがHTMLをどのように解釈するかを理解しようとしている場合、これは問題の部分的な解決策にすぎない可能性があります。
整形式ですか?HTMLが実際に整形式である場合は、XMLとして解析できます。それがタグスープであり、閉じられていない要素などがある場合は、サードパーティのソリューションを探し回る必要があると思います。