PULL と SAX は両方とも events に基づいていますが、この 2 つの最も重要な違いは次のとおりです。
SAX は PULL とは対照的に、「PUSH」と見なすことができます。パーサーは、特定のイベント ソースに遭遇したときに処理のためにデータを コールバック関数 に渡すため、この意味では、データはユーザーに「プッシュ」され、ユーザーがそのデータをパーサーから取得するのが PULL メソッドです。特定のイベントに遭遇すると、興味のあるものを取得するために、データが「プル」されるように感じられます。
もう 1 つの違いは、PULL 解析プロセス (while ループ) では、 ループを終了することができますが、SAX プロセスでは、解析が開始されると完了する必要があります。
さらに、少し拡張:
現在、主な解析と生成の原則は 2 つあります。1 つは、リフレクションを通じてクラス名、
属性名、その他の情報を照合することであり、もう 1 つは、jvm のバイトコードを直接使用して操作することです。これら 2 つの方法の効率は自明であり、当然バイナリ バイトコードの方が効率的です。
以上がXML PULL テクノロジーと PUSH テクノロジーの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。