ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

XSL/XSLTコミュのxsl:keyとkey関数

  • mixiチェック
  • このエントリーをはてなブックマークに追加
keyについてこれまであまり調べていなくて、
先日ふと思い出して使ってみているのですが、
自分の理解が合っているかちょっと自信が無いので、
どなたかツッコミお願い致します。

例えば、

http://www.atmarkit.co.jp/fxml/tanpatsu/10xslt/xslt06.html

<?xml version="1.0" encoding="shift_jis"?>
<customers>
<customer id="c001">
<name>秋本太郎</name>
<addr>港区麻布狸穴町A-A-A</addr>
<area>関東</area>
</customer>
<customer id="c002">
<name>加藤花子</name>
<addr>横浜市金沢区乙舳B-B-B</addr>
<area>関東</area>
</customer>
<customer id="c003">
<name>佐々木次郎</name>
<addr>大阪市鶴見区放出東C-C-C</addr>
<area>近畿</area>
</customer>
<customer id="c004">
<name>田中良子</name>
<addr>浦添市勢理客D-D-D</addr>
<area>沖縄</area>
</customer>
</customers>

この記事の例ですと、リスト6で、

<xsl:key name="area-key" match="customer" use="area"/>
<xsl:for-each select="key('area-key','関東')">
<li><xsl:value-of select="name"/>様</li>
</xsl:for-each>

という部分がありますが、

<xsl:for-each select="//customer[area='関東']">
<li><xsl:value-of select="name"/>様</li>
</xsl:for-each>

でも同様の動作を実現できます。

つまり、keyという仕組みは、XPathの条件付き絞り込みを
「抽象化」もしくは「部品化」して使う為のものである、
と理解しました。

この認識って、どうでしょうか。
自分で書いててなんだか浅すぎるような気がするのですが…。

key定義するとパフォーマンスが上がるとか、そういうのも
ひょっとして実装によっては有り得るんでしょうかね…?

コメント(0)

mixiユーザー
ログインしてコメントしよう!

XSL/XSLT 更新情報

XSL/XSLTのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング