おそらく多くの人は、現在の HTML パーサーで十分であり、単純な正規表現でも HTML ドキュメントを操作するニーズをすでに満たしていると考えるでしょう。はい、実際、インターネット上の HTML ドキュメントの大部分は XHTML 仕様を満たしており、その解析には強力なパーサーは必要ありません。ただし、強力なパーサーと完璧なパーサーは別のものです。
Jumony Core はまず、ほぼ完璧な HTML 解析エンジンを提供し、その解析結果はブラウザーの解析結果に限りなく近づきます。終了タグのない要素、オプションの終了タグのある要素、タグ属性、CSS セレクターとスタイルのいずれであっても、すべての合法および違法の HTML ドキュメントがブラウザーによって解析され、Jumony はそれらをサンプルに解析します。つまり、Jumony の解析結果はブラウザの解析結果と同じであるため、HTML ドキュメントが認識できるかどうかを心配する必要はなくなります。ブラウザがそれを読み取ることができれば、Jumony はそれを理解できます。
完璧と強力の間には 1 ステップしかありませんが、完璧なパーサーを使用すると、HTML ソース ドキュメントを気にする必要がなくなります。
以下は、Jumony パーサーでサポートされている機能の不完全なリストです
特性 | 例子 |
孤立的<解析为文本 | < a应当解析为< a |
孤立的>解析为文本 | >应当解析为> |
标记属性(没有值的属性) | |
元素丢失结束标签 | |
可选结束标签元素 "body", "colgroup", "dd", "dt", "head", "html", "li", "option", "p", "tbody", "td", "tfoot", "th", "thead", "tr" |
abc 123 |
无结束标签元素 「area」、「base」、「basefont」、「br」、「col」、「frame」、「hr」、「img」、「input」、「isindex」、「link」、「meta」、「 param", "wbr", "bgsound", "spacer", "keygen" |
|
CDataElement | < ;script>if ( 1" ); |
"script", "style", "textarea", "title" | |
事前にフォーマットされた要素 | <span class="font5">前にスペースがあります</span><span class="font6"> |
属性値には一重引用符を使用してください | |
属性値には二重引用符を使用します | |
属性値には引用符を使用しないでください | < a href=#> |
属性値がありません (ただし、等号はあります) | |
の前にスペースがあります属性値 | |
解析HTML宣言 | > |
テキストから HTML を解析できるだけでなく、Jumony の API はインターネットからドキュメント分析を直接取得し、HTTP ヘッダーに基づいてエンコーディングを自動的に識別できます: Jumony に次ぐ HTML 解析オープンソース プロジェクトである
new JumonyParser().LoadDocument( "www.php.cn/" ).Find( ".post_item a.titlelnk" )
HtmlAgilityPack は長い間廃止されています長年経った今でも、最も基本的な