blog

フロントエンドの再学習 VI - HTML解析

HTMLパーシング i. ファイルの分割とインターフェース設計 ファイル管理を容易にするため、パーサーは別々のファイルに分割されます パーサーはパラメータとしてHTMLテキストを受け入れ、DOMツリー...

Apr 17, 2020 · 1 min. read
シェア

HTML解析

I. 文書の分割とインターフェース設計

  • ファイル管理を容易にするため、パーサーを別のファイルに分割します。
  • パーサーは HTML テキストを引数として受け取り、DOM ツリーを返します。

HTML 解析を実装する FSM

  • FSMによるHTML解析の実装
  • HTML標準では、HTMLの状態は次のように規定されています。
  • Toy-Browserは、ミニマリスト・バージョンを完成させるために、これらの状態の一部だけを選びます。

III.ラベルの解析

  • 主なラベルは、開始ラベル、終了ラベル、自動閉鎖ラベルです。<div></div><br />
  • このステップでは、プロパティを無視します。

IV.要素の作成

  • ステートマシンでは、ステートマイグレーションに加えて、ビジネスロジックも追加されます。
  • タグ終了状態でタグトークンを送信

V. 属性の取り扱い

  • 属性値はシングルクォート、ダブルクォート、ノークォートのスタイルで記述されます。
  • 属性はタグと同様に扱われます。
  • 属性の最後に、その属性をTokenタグに追加します。

VI. DOMツリーの構築

  • タグから DOM ツリーを構築する基本的なコツは、スタック
  • 要素を作成し、開始タグに出会ったらスタックに置き、終了タグに出会ったらスタックから取り出します。
  • 自閉ノードはスタック内にあり、すぐにスタックから出ることができます。
  • 要素の親は、スタックに乗る前のスタックの一番上です。

VII.テキストノード

  • テキストノードは、自己閉鎖ラベルに似ています。
  • 複数のテキストノードをマージする必要があります。
Read next

iOSオブジェクト原理探究 I - 3つの探究方法

この記事はiosの基礎となるオブジェクトの記録原理を学んでいる途中です。\nはじめに\n我々はすべての最も基本的なObjective - Cの開発で知っているように、オブジェクトを初期化するallocとinitメソッドの使用ですが、最も基本的で簡単な操作のこのオブジェクトの作成の毎日の開発で

Apr 17, 2020 · 4 min read