mozilla
Your Search Results

    Parsing microformats in JavaScript

    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 プロパティのための適切なテキストを決定します。これには、abbrimgaltareaalt、値の抜粋、などの判断が含まれます。

    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 を取得するために呼び出すことができる関数を含むオブジェクト。

    註: これは HTML を文字列として返す代わりに、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 を取得します。これは、hrefimgobject、あるいは area を検索して、完全な形式の URI を取得することで行われます。

    uri = Microformats.parser.uriGetter(propnode, parentnode);
    
    引数
    <tt>propnode</tt>
    チェックを行う DOM ノード。
    <tt>parentnode</tt>
    プロパティの親ノード。そのプロパティがサブプロパティの場合、この値は親プロパティノードとなります。そうでなければ、この値は microformat ノードです。
    戻り値

    完全な形式の URI を含む文字列。

    関連記事

    Using microformats, Describing microformats in JavaScript

    ドキュメントのタグと貢献者

    Contributors to this page: Kohei, Mgjbot
    最終更新者: Mgjbot,