私はFBがFBMLをどのように作成し、どのように類似のものを作成するかについて本当に興味があります。彼らは、FBMLをHTMLに置き換えるC++プロセッサを書くのか、XSLTを使うのか、そういうテンプレート言語を作るために何をしましたか?私は似たようなものを作ることができるかどうかを知るために、自分の知識と楽しみのために主にこれをしたいと思っています。 Iveは彼らの作り方を見てみましたが、FBMLを使う方法があります。FBはどのようにFBMLを作成しましたか?
答えて
まあ、HTMLに変換し、XMLのためのパーサを書くための3つの方法があります。
- がメモリにXMLを読み取るためにXMLパーサライブラリを使用
- をLEXでパーサを書いて、バイソン 、およびXMLをHTMLに変換する「通常の」プログラミング言語です。
- XSLT
- FBMLタグをHTMLに変換できるカスタムタグライブラリをサポートするいくつかのWebフレームワークを使用します。
オプション#1は、常に#2を使用できるので、基本的には行われません。
いくつかのタグがXMLファイル(例:fb:if-can-see
)の外部のリソースと話す必要があるという事実から判断すると、#2と#4は#3よりも可能性が高くなります - 両方ともSQLデータベースまたはNoSQLデータベースなどが含まれる。
(多くの言語のXSLTライブラリでは、実装されている言語で任意のデータソースにアクセスできるカスタム関数を定義できるため、#3は不可能ではありません)。
FBMLコードの場合、FFやIEなどのブラウザがapp.facebook.com/some_app
に接続し、Facebookサーバーがwww.foobar.com/blah
(Facebookでアプリ登録者が登録する)に接続し、Facebookが変更できるFBMLをXHTMLに変更します。彼らはパーサを使って、FBMLコードを解析し、それに応じてXHTMLに変換することができます。
これはJavaScriptやPHPを解析するような通常のパーサですか? – vol4life27
はい、さまざまな言語で書かれたパーサーが数多くあり、Cを使用していた昔は、lexとyaccを使ってスキャンと解析を行っていました。おそらくそれらより新しいツールがあります。 –
「異常なパーサ」とは何でしょうか? :D –
- 1. FBのように通知ログを作成する方法は?
- 2. C++ AllegroまたはSDLはどのようにウィンドウを作成しますか?
- 3. Enyoでは、作成したコントロールをどのように削除しますか?
- 4. CakePHP 2はどのようにテーブルを作成しますか?
- 5. ウォーロックではどのようにクラスを作成しますか?
- 6. Googleテストはどのようにテストシーケンスを作成しますか
- 7. デザイナーはどのようにLineウィジェットを作成しますか?
- 8. Vagrantはプライベートネットワークをどのように作成しますか?
- 9. asp.netはどのようにセッションIDを作成しますか?
- 10. Googleはどのようにスクロールバーを作成しますか?
- 11. Railsはオプションリストをどのように作成しますか?
- 12. FBMLがFacebookでの作業を中止しました
- 13. どのようにしてメタクラスを作成しますか?
- 14. どのようにしてNvarchar()を作成しますか
- 15. Flatbuffers:どのようにしてネストしたテーブルを作成しますか?
- 16. Rebol 3のコーデックはどのように作成しますか?
- 17. スフィンクスのチュートリアルページはどのように作成しますか?
- 18. Buildout用のスクリプトはどのように作成しますか?
- 19. このトリガーはどのように作成しますか?
- 20. スタイルリストビューアイテムはどのように作成しますか?
- 21. テキストモードグラフィックはどのように作成しますか?
- 22. Mysqlクラスタード・インデックスはどのように作成しますか?
- 23. "ネスト"棒グラフはどのように作成しますか?
- 24. OCRプログラムはどのように作成しますか?
- 25. リアクションネイティブ - 垂直オーバーレイはどのように作成しますか?
- 26. スタティックFBMLタブ - ダイアログ()が動作を停止しました
- 27. dbフォルダを削除した後、どのように再作成しますか?
- 28. どのようにキャッシュフォルダをgradleフォルダに作成しますか?
- 29. FB.XFBML.parseがFBMLをリロードしようとしていません
- 30. どのように作成した他のhtmlページにつながるナビゲーションバーを作成しますか?
さて、私は主にPHPの解析のようなパーサーであることを知っておく必要があることを知っているので、そのような構文解析について一般的なことを主に思っていました。 Webベースの言語ではできない限り、パーサーを構築することはできません。私はCやC++などに堪能ではありません。LOLしかしあなたの答えはよかったです。 :) – vol4life27