Firefox 3 では、microformat を管理、パースするための新しい API が導入されました。この記事では、microformat からデータを取得する“力仕事”を処理する、一般的な microformat をパースするための API について研究します。この API は主に、新しい microformat を実装する際に利用されることを意図したものです。
メソッド
dateTimeGetter()
特に、microformat ノードから日付を取得します。テキストを取得した後、ISO 8601 形式の日付に正規化します。
normalizedDate = Microformats.parser.dateTimeGetter(propnode, parentnode);
引数
- <tt>propnode</tt>
- チェックを行う DOM ノード。
- <tt>parentnode</tt>
- プロパティの親ノード。そのプロパティがサブプロパティの場合、この値は親プロパティノードとなります。そうでなければ、この値は microformat ノードです。
戻り値
正規化された日付を含む文字列。
defaultGetter()
microformat のパターンを使って、与えられた microformat プロパティのための適切なテキストを決定します。これには、abbr
、img
と alt
、area
と alt
、値の抜粋、などの判断が含まれます。
propertyValue = Microformats.parser.defaultGetter(propnode, parentnode, datatype);
引数
- <tt>propnode</tt>
- チェックを行う DOM ノード。
- <tt>parentnode</tt>
- プロパティの親ノード。そのプロパティがサブプロパティの場合、この値は親プロパティノードとなります。そうでなければ、この値は microformat ノードです。
- <tt>datatype</tt>
innerHTML()
を使って検索を行う場合は「HTML」、innerText()
を使って行う場合は「text」です。デフォルトは「text」です。
戻り値
プロパティの値を含む文字列。
emailGetter()
特に、microformat ノードからメールアドレスを取得します。件名が指定されていた場合や、mailto:
接頭辞が付いていた場合、それらは削除されます。
email = Microformats.parser.emailGetter(propnode, parentnode);
引数
- <tt>propnode</tt>
- チェックを行う DOM ノード。
- <tt>parentnode</tt>
- プロパティの親ノード。そのプロパティがサブプロパティの場合、この値は親プロパティノードとなります。そうでなければ、この値は microformat ノードです。
戻り値
メールアドレスを含む文字列。
HTMLGetter()
特定の DOM ノー炉からすべての HTML を取得します。
html = Microformats.parser.HTMLGetter(propnode, parentnode);
引数
- <tt>propnode</tt>
- チェックを行う DOM ノード。
- <tt>parentnode</tt>
- プロパティの親ノード。そのプロパティがサブプロパティの場合、この値は親プロパティノードとなります。そうでなければ、この値は microformat ノードです。
戻り値
文字列と HTML を取得するために呼び出すことができる関数を含むオブジェクト。
戻り値のオブジェクトに対して呼び出せる関数は以下のものです。
string = html.toString();
innerText()
を使って、文字列を返します。
string = html.toHTML();
innerHTML()
を使って、ノードの HTML を返します。
string = html.replace(a, b);
HTML 内に出現した <tt>a</tt> をすべて <tt>b</tt> に置き換えた文字列を返します。
string = html.match(a);
HTML に対して、指定したマッチング操作を実施し、結果を返します。
iso8601FromDate
JavaScript の Date オブジェクトを ISO 8601 形式の日付に変換します。
isoDate = Microformats.parser.iso8601FromDate(date, punctuation)
引数
- <tt>date</tt>
- 変換を行う JavaScript
Date
オブジェクト。 - <tt>punctuation</tt>
- 日付に「-」や「/」が含まれる場合は
true
とします。
戻り値
ISO 8601 形式の日付が含まれる文字列。
textGetter()
特定の DOM ノードから、すべてのタグを含む、すべてのテキストを取得します。これは内部的に defaultGetter()
を呼び出しています。
text = Microformats.parser.textGetter(propnode, parentnode);
引数
- <tt>propnode</tt>
- チェックを行う DOM ノード。
- <tt>parentnode</tt>
- プロパティの親ノード。そのプロパティがサブプロパティの場合、この値は親プロパティノードとなります。そうでなければ、この値は microformat ノードです。
戻り値
指定された microformat ノードから取得された、タグを含む、すべてのテキストを含む文字列。
telGetter()
特に、microformat ノードから電話番号を取得します。これは、電話番号が「value」をそのサブプロパティのいずれかの名前として使っている一方で、「value」が 値の抜粋 にも使われている、ということを処理します。
tel = Microformats.parser.telGetter(propnode, parentnode);
引数
- <tt>propnode</tt>
- チェックを行う DOM ノード。
- <tt>parentnode</tt>
- プロパティの親ノード。そのプロパティがサブプロパティの場合、この値は親プロパティノードとなります。そうでなければ、この値は microformat ノードです。
戻り値
電話番号を含む文字列。
uriGetter()
特に、microformat ノードから URI を取得します。これは、href
、img
、object
、あるいは area
を検索して、完全な形式の URI を取得することで行われます。
uri = Microformats.parser.uriGetter(propnode, parentnode);
引数
- <tt>propnode</tt>
- チェックを行う DOM ノード。
- <tt>parentnode</tt>
- プロパティの親ノード。そのプロパティがサブプロパティの場合、この値は親プロパティノードとなります。そうでなければ、この値は microformat ノードです。
戻り値
完全な形式の URI を含む文字列。
関連記事
Using microformats, Describing microformats in JavaScript