SlideShare a Scribd company logo
1 of 42
はじめての XSLT SwapSKills 2009   vol.2 次に求められる  Web サイト制作の技術 株式会社まぼろし:小林 信次 2009.04.05 はじめての XSLT
自己紹介 ,[object Object],[object Object],[object Object]
自己紹介 2 刷 4 刷
自己紹介 2/27 発売
このセッションの流れ ,[object Object],[object Object],[object Object]
1.XSLT とは ? ,[object Object],[object Object],[object Object],[object Object]
XML としての XSLT XSL XML etc XHTML XSL-FO XSLT XPath SVG MathML
XSLT の歴史 1999-11-16 XSLT Version 1.0 2007-01-21 XSLT Version 2.0
XSLT の名前 ,[object Object],[object Object],[object Object],[object Object],[object Object]
XSLT の役割 ,[object Object],[object Object],【例】 XML XSLT HTML XSL-FO PDF ブラウジング 印刷
2.XML を XSLT で変換してみよう ! ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
XSLT のお決まり ,[object Object],[object Object],[object Object],[object Object],[object Object]
XML と XSLT を関連付ける ,[object Object],[object Object],[object Object],[object Object],XSLT までのパス application/xslt+xml application/xml
出力結果を指定する ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],【 xsl:output /属性参考】 http://msdn.microsoft.com/ja-jp/library/ms256187.aspx ,[object Object],[object Object],[object Object],[object Object]
XSLT はテンプレートのかたまり ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],ルート要素に適用 されるテンプレート ※ このテンプレートから他のテンプレートを 呼び出したりが可能
XSLT はテンプレートのかたまり ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
XSLT はテンプレートのかたまり XSLT ルート要素の テンプレート テンプレート テンプレート
2-1. DW と XSLT で、制作ページ一覧を作る ,[object Object],[object Object],[object Object],[object Object],[object Object]
変換する XML
変換する XML
要素・属性の内容を表示する ,[object Object],[object Object],現在のノード からのパス ※ XPath 式で記述 hoge 要素 の hoge 属性 hoge 要素 の内容
[object Object],[object Object],XPath
XPath XPath で利用できる主な構文の例 構文 概要 例 / 直下の子要素 a/b a 要素直下の b 要素 // すべての 子孫要素 a//b a 要素内のすべての b 要素 * すべての要素 a/* a 要素直下のすべての要素 @ 要素の属性 a/@b a 要素の b 属性
テンプレートから別のテンプレートを呼ぶ ,[object Object],現在のノード からのパス ※ XPath 式で記述
テンプレートから別のテンプレートを呼ぶ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],select 属性と一致した match 属性の値を持つ テンプレートが呼び出される
[object Object],テンプレートから別のテンプレートを呼ぶ ルート要素の テンプレート テンプレート テンプレート
テンプレートから別のテンプレートを呼ぶ ,[object Object],[object Object],[object Object],ルート要素の テンプレート テンプレート テンプレート
[object Object],[object Object],[object Object],繰り返し処理 現在のノード配下にある すべての hoge 要素を 繰り返し処理
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],現在のノード ルート要素 ルート要素 内の hoge 要素 hoge 要素 内の fuga 要素
[object Object],属性を生成する 構文エラーに なってしまう
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],属性を生成する href 属性を 生成し、 href 属性の値に、 hoge 要素の 内容を指定 a 要素の内容に、 fuga 要素の 内容を指定
2-2. AMAZON の WEB サービスを利用する ,[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],変換する XML
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],変換する XML
[object Object],連番を追加する 番号の 表示形式 その他も もろもろ [ 割愛 ] format 属性指定 番号の表示形式 format="1" 1 2 3 ..... 10 11 12 ..... format="A" A B C ..... Z AA AB AC ..... format="a" a b c ..... z aa ab ac ..... format="i" i ii iii iv v vi ..... format="I" I II III IV V VI ..... format=" あ " あ い う え お か  ..... format=" ア " ア イ ウ エ オ カ  ..... format=" 一 " 一 二 三 四 五 六  ..... format=" 壱 " 壱 弐 参 四 五 六  .....
[object Object],[object Object],[object Object],[object Object],XSLT のソート機能 ソートする対象 の要素を指定 データ型 text/number の 2 種類 昇順 [ascending] 降順 [descending]
[object Object],[object Object],[object Object],条件によって表示を変える <xsl:choose> <xsl:when test=“ 条件式 A”> 内容 A </xsl:when> <xsl:otherwise> 内容 B </xsl:otherwise> </xsl:choose> 条件式が true のときに内容を表示 条件式 A が true の ときに内容 A を表示 それ以外のときに 内容 B を表示 xsl:when は複数指定可能
[object Object],[object Object],条件によって表示を変える [] -> フィルタパターン ※ 中に比較式や論理式 を記述可能
[object Object],[object Object],条件によって表示を変える 要素 比較の対象 演算子 【比較式/論理式参考】 http://msdn.microsoft.com/ja-jp/library/ ms256081(VS.80).aspx
[object Object],[object Object],平均値を求める hoge 要素内の fuga 要素の合計 【さまざまな XPath 関数参考】 http://msdn.microsoft.com/ja-jp/library/ ms256138(VS.80).aspx 割り算 hoge 要素内の fuga 要素の数
3. 参考 ,[object Object],[object Object],[object Object]
はじめての XSLT ありがとうございました [email_address]

More Related Content

Similar to 『はじめてのXSLT 』小林 信次

PHP, Now and Then 2011
PHP, Now and Then 2011PHP, Now and Then 2011
PHP, Now and Then 2011Rui Hirokawa
 
2005 10 07_kof2005_xoops
2005 10 07_kof2005_xoops2005 10 07_kof2005_xoops
2005 10 07_kof2005_xoopsTom Hayakawa
 
2006 03 18_osc2006_x_cube_template
2006 03 18_osc2006_x_cube_template2006 03 18_osc2006_x_cube_template
2006 03 18_osc2006_x_cube_templateTom Hayakawa
 
2005 09 17_osc2005_xoops
2005 09 17_osc2005_xoops2005 09 17_osc2005_xoops
2005 09 17_osc2005_xoopsTom Hayakawa
 
XLWrapについてのご紹介
XLWrapについてのご紹介XLWrapについてのご紹介
XLWrapについてのご紹介Ohsawa Goodfellow
 
webを飾る技術
webを飾る技術webを飾る技術
webを飾る技術ina job
 
T2 - 関ジャバ1月27日
T2 - 関ジャバ1月27日T2 - 関ジャバ1月27日
T2 - 関ジャバ1月27日Go Tanaka
 
Maiking RIA Apps by Ruby
Maiking RIA Apps by RubyMaiking RIA Apps by Ruby
Maiking RIA Apps by Rubyshozon
 
SQLマッピングフレームワーク「Kobati」のはなし
SQLマッピングフレームワーク「Kobati」のはなしSQLマッピングフレームワーク「Kobati」のはなし
SQLマッピングフレームワーク「Kobati」のはなしKazuki Minamitani
 
Xml builderの紹介
Xml builderの紹介Xml builderの紹介
Xml builderの紹介Hiraku Nakano
 
Intalio Cloud Workshop
Intalio Cloud Workshop Intalio Cloud Workshop
Intalio Cloud Workshop Daisuke Sugai
 
2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talkmitamex4u
 
ウェブアーキテクチャの歴史と未来
ウェブアーキテクチャの歴史と未来ウェブアーキテクチャの歴史と未来
ウェブアーキテクチャの歴史と未来Kazuho Oku
 
丸山先生レクチャーシリーズ2007-2008
丸山先生レクチャーシリーズ2007-2008丸山先生レクチャーシリーズ2007-2008
丸山先生レクチャーシリーズ2007-2008Yoichiro Tanaka
 
Cocoa Pro08
Cocoa Pro08Cocoa Pro08
Cocoa Pro08hasegawa
 
ADC MEETUP 03 HTML5でユーザビリティを高めるためのフォーム構築法
ADC MEETUP 03 HTML5でユーザビリティを高めるためのフォーム構築法ADC MEETUP 03 HTML5でユーザビリティを高めるためのフォーム構築法
ADC MEETUP 03 HTML5でユーザビリティを高めるためのフォーム構築法美緒 山下
 
CRF を使った Web 本文抽出 for WebDB Forum 2011
CRF を使った Web 本文抽出 for WebDB Forum 2011CRF を使った Web 本文抽出 for WebDB Forum 2011
CRF を使った Web 本文抽出 for WebDB Forum 2011Shuyo Nakatani
 

Similar to 『はじめてのXSLT 』小林 信次 (20)

PHP, Now and Then 2011
PHP, Now and Then 2011PHP, Now and Then 2011
PHP, Now and Then 2011
 
2005 10 07_kof2005_xoops
2005 10 07_kof2005_xoops2005 10 07_kof2005_xoops
2005 10 07_kof2005_xoops
 
Xml Security
Xml SecurityXml Security
Xml Security
 
2006 03 18_osc2006_x_cube_template
2006 03 18_osc2006_x_cube_template2006 03 18_osc2006_x_cube_template
2006 03 18_osc2006_x_cube_template
 
Xslt
XsltXslt
Xslt
 
計算機理論入門09
計算機理論入門09計算機理論入門09
計算機理論入門09
 
2005 09 17_osc2005_xoops
2005 09 17_osc2005_xoops2005 09 17_osc2005_xoops
2005 09 17_osc2005_xoops
 
XLWrapについてのご紹介
XLWrapについてのご紹介XLWrapについてのご紹介
XLWrapについてのご紹介
 
webを飾る技術
webを飾る技術webを飾る技術
webを飾る技術
 
T2 - 関ジャバ1月27日
T2 - 関ジャバ1月27日T2 - 関ジャバ1月27日
T2 - 関ジャバ1月27日
 
Maiking RIA Apps by Ruby
Maiking RIA Apps by RubyMaiking RIA Apps by Ruby
Maiking RIA Apps by Ruby
 
SQLマッピングフレームワーク「Kobati」のはなし
SQLマッピングフレームワーク「Kobati」のはなしSQLマッピングフレームワーク「Kobati」のはなし
SQLマッピングフレームワーク「Kobati」のはなし
 
Xml builderの紹介
Xml builderの紹介Xml builderの紹介
Xml builderの紹介
 
Intalio Cloud Workshop
Intalio Cloud Workshop Intalio Cloud Workshop
Intalio Cloud Workshop
 
2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk
 
ウェブアーキテクチャの歴史と未来
ウェブアーキテクチャの歴史と未来ウェブアーキテクチャの歴史と未来
ウェブアーキテクチャの歴史と未来
 
丸山先生レクチャーシリーズ2007-2008
丸山先生レクチャーシリーズ2007-2008丸山先生レクチャーシリーズ2007-2008
丸山先生レクチャーシリーズ2007-2008
 
Cocoa Pro08
Cocoa Pro08Cocoa Pro08
Cocoa Pro08
 
ADC MEETUP 03 HTML5でユーザビリティを高めるためのフォーム構築法
ADC MEETUP 03 HTML5でユーザビリティを高めるためのフォーム構築法ADC MEETUP 03 HTML5でユーザビリティを高めるためのフォーム構築法
ADC MEETUP 03 HTML5でユーザビリティを高めるためのフォーム構築法
 
CRF を使った Web 本文抽出 for WebDB Forum 2011
CRF を使った Web 本文抽出 for WebDB Forum 2011CRF を使った Web 本文抽出 for WebDB Forum 2011
CRF を使った Web 本文抽出 for WebDB Forum 2011
 

More from SwapSkills

スマートフォンサイトのトレンドとユーザビリティ
スマートフォンサイトのトレンドとユーザビリティスマートフォンサイトのトレンドとユーザビリティ
スマートフォンサイトのトレンドとユーザビリティSwapSkills
 
今からハジメるHTML5プログラミング
今からハジメるHTML5プログラミング今からハジメるHTML5プログラミング
今からハジメるHTML5プログラミングSwapSkills
 
今からハジメるHTML5マークアップ
今からハジメるHTML5マークアップ今からハジメるHTML5マークアップ
今からハジメるHTML5マークアップSwapSkills
 
『XHTML+SVG+MathMLの技術を知る! 』 小山田 晃浩 
『XHTML+SVG+MathMLの技術を知る! 』 小山田 晃浩 『XHTML+SVG+MathMLの技術を知る! 』 小山田 晃浩 
『XHTML+SVG+MathMLの技術を知る! 』 小山田 晃浩 SwapSkills
 
Swapskills Print Css
Swapskills Print CssSwapskills Print Css
Swapskills Print CssSwapSkills
 
Swap Skills I Phone
Swap Skills I PhoneSwap Skills I Phone
Swap Skills I PhoneSwapSkills
 

More from SwapSkills (6)

スマートフォンサイトのトレンドとユーザビリティ
スマートフォンサイトのトレンドとユーザビリティスマートフォンサイトのトレンドとユーザビリティ
スマートフォンサイトのトレンドとユーザビリティ
 
今からハジメるHTML5プログラミング
今からハジメるHTML5プログラミング今からハジメるHTML5プログラミング
今からハジメるHTML5プログラミング
 
今からハジメるHTML5マークアップ
今からハジメるHTML5マークアップ今からハジメるHTML5マークアップ
今からハジメるHTML5マークアップ
 
『XHTML+SVG+MathMLの技術を知る! 』 小山田 晃浩 
『XHTML+SVG+MathMLの技術を知る! 』 小山田 晃浩 『XHTML+SVG+MathMLの技術を知る! 』 小山田 晃浩 
『XHTML+SVG+MathMLの技術を知る! 』 小山田 晃浩 
 
Swapskills Print Css
Swapskills Print CssSwapskills Print Css
Swapskills Print Css
 
Swap Skills I Phone
Swap Skills I PhoneSwap Skills I Phone
Swap Skills I Phone
 

『はじめてのXSLT 』小林 信次