伸び縮みマークアップ言語 XML
■ テキストの抽出

■ xsl:value-of要素

xsl:value-of」要素はselect属性で指定したノードの値を 結果ツリーに出力します。 select属性にはXPath式を記述します。

では、例題を取り上げてみましょう。
以下の2つのファイルをご覧下さい。XML文書を「sample02.xml」、 XSLTスタイルシートを「test02.xsl」 として保存します。「sample02.xml」ファイルに記述する xml-stylesheet処理命令href属性に 「test02.xsl」と指定して下さい。

■ sample02.xml

<?xml version="1.0" encoding="Shift_JIS"?>
<?xml-stylesheet href="test02.xsl" type="text/xsl"?>
<会員データ>
 <氏名 フリガナ="レイダイタロウ">例題太郎</氏名>
 <住所>東京都</住所>
 <電話>000-0000-0000</電話>
 <メール>reidai@ykr414.com</メール>
</会員データ>

■ test02.xsl

<?xml version="1.0" encoding="SHIFT_JIS"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:template match="会員データ">
  <html>
   <body>
    <xsl:apply-templates select="住所"/>
   </body>
  </html>

 </xsl:template>
 <xsl:template match="住所">
  <b>□住所 : </b><xsl:value-of select="."/>
 </xsl:template>
</xsl:stylesheet>

この例では、XML文書の「会員データ」要素の下にある「住所」要素だけをブラウザに表示する テンプレートを記述しています。 会員データテンプレートで「<html>~」タグを生成し、 「xsl:apply-templates」のselect属性の値に 「住所」を記述して住所要素だけを表示するよう指定します。 「住所テンプレート」の「xsl:value-of」要素では select属性に「.」を記述して カレントノードを指定します。

カレントノード
match属性、select属性に記述するXpath式の「.」はカレントノードといい、現在処理をしているノードを指します。

これらを記述してsample02.xmlファイルを開くと、(上記の2つのファイルは同じフォルダに入れて下さい。) 下記のような実行結果になります。
なお、テンプレートが全くない状態でXML文書をブラウザで表示すると、全てのテキストノードが連なって表示されるので ご注意下さい。

□住所 : 東京都

■ ノードのコピー

■ xsl:copy-of要素

xsl:copy-of」要素はselect属性で指定した ノード以下の要素を全てコピーし、結果ツリーに出力します。 この要素にselect属性は必須であり、XPath式を記述します。

では例題を取り上げて実際に動作を確認してみましょう。
以下の2つのファイルをご覧下さい。XML文書を「sample03.xml」、 XSLTスタイルシートを「test03.xsl」 として保存します。「sample03.xml」ファイルに記述する xml-stylesheet処理命令href属性に 「test03.xsl」と指定して下さい。

■ sample03.xml

<?xml version="1.0" encoding="SHIFT_JIS"?>
<?xml-stylesheet href="test03.xsl" type="text/xsl"?>
<会員データ>
 <氏名>名前太郎</氏名>
 <ID>0000503</ID>
 <住所>東京都</住所>
</会員データ>

■ test03.xsl

<?xml version="1.0" encoding="SHIFT_JIS"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:template match="会員データ">
  <pre><xsl:copy-of select="."/></pre>
 </xsl:template>
</xsl:stylesheet>

会員データ要素以下の要素を全てコピーして、出力します。 macth属性に「会員データ」を記述し、 「xsl:copy-of」要素のselect属性に 「.」を記述してカレントノードを指定します。 これで、「会員データ」以下のノードを全てそのままコピーするよう設定しました。

これらを記述してsample03.xmlファイルを開くと、(上記の2つのファイルは同じフォルダに入れて下さい。) 下記のような実行結果になります。

<会員データ>
<氏名>名前太郎
<ID>0000503
<住所>東京都

Internet Explorer 6での表示について
上記ではタグを含めた全ての要素を表示するはずなのですが、IE6では終了タグが表示されません。 他にもXMLの文法通り機能が動作しない事があります。

■ テキストの生成

■ xsl:text要素

xsl:text」要素はテキストノードを生成する機能があり、特殊文字を表示したりするときなどに使用します。 「disable-output-escaping」属性には 「yes」か「no」を指定でき、 属性を省略した場合は「no」が指定されたものと みなします。属性の値に「yes」を指定した場合、 要素の内容に「&#60;」を記述すると 「<」と出力し、「no」を指定すると、 「&#60;」のまま出力します。

では例題を取り上げて実際に動作を確認してみましょう。
以下の2つのファイルをご覧下さい。XML文書を「sample04.xml」、 XSLTスタイルシートを「test04.xsl」 として保存します。「sample04.xml」ファイルに記述する xml-stylesheet処理命令href属性に 「test04.xsl」と指定して下さい。

■ sample04.xml

<?xml vesion="1.0" encoding="Shift_JIS"?>
<?xml-stylesheet version="1.0" href="test04.xsl" type="text/xsl"?>
<会員データ>
 <氏名>例題三郎</氏名>
 <ID>00005</ID>
 <住所>名古屋</住所>
</会員データ>

■ test04.xsl

<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="会員データ">
 <xsl:apply-templates select="住所"/>
</xsl:template>
<xsl:template match="住所">
 <xsl:text>
 ■yesを設定した場合
 </xsl:text>
 <xsl:text disable-output-escaping="yes">&#60;</xsl:text>
   <xsl:value-of select="."/>
 <xsl:text disable-output-escaping="yes">&#62;</xsl:text>
 <xsl:text>
 ■noを設定した場合
 </xsl:text>
 <xsl:text disable-output-escaping="no">&#60;</xsl:text>
   <xsl:value-of select="."/>
 <xsl:text disable-output-escaping="no">&#62;</xsl:text>
</xsl:template>
</xsl:stylesheet>

この実行結果はブラウザからは確認することができませんので、
コマンドプロンプトを使用して確認します。

上記2つのファイルを同じフォルダにいれ、 コマンドプロンプトを開きます。開いたら 「msxsl sample04.xml test04.xsl -o xml04.txt」 とコマンドラインに入力し実行します。すると、「xml04.txt」が生成されるので開いてください。 下記のような実行結果になります。

 ■yesを設定した場合
<名古屋>
 ■noを設定した場合
&#60;名古屋&#62;

msxsl.exeのインストール
MSXSLはコマンドプロンプトからXML文書、XSLTスタイルシート、そして出力ファイル名を指定して実行する事で、 結果を保存する事が可能です。msxsl.exeはMicrosoft社のダウンロードセンターから無償で ダウンロードできます。URLが変更される場合もありますので、ダウンロードセンターの、 ダウンロードの検索で、キーワードのフォームに「msxsl.exe」と入力して検索してください。
http://www.microsoft.com/japan


■ コメントの生成

■ xsl:comment要素

xsl:comment」要素はコメントを生成します。コメントは要素の内容に記述します。

では例題を取り上げて実際に動作を確認してみましょう。
以下の2つのファイルをご覧下さい。XML文書を「sample05.xml」、 XSLTスタイルシートを「test05.xsl」 として保存します。「sample05.xml」ファイルに記述する xml-stylesheet処理命令href属性に 「test05.xsl」と指定して下さい。

■ sample05.xml

<?xml version="1.0" encoding="Shift_JIS"?>
<?xml-stylesheet href="test05.xsl" type="text/xsl"?>
<会員データ>
 <氏名>名前五郎</氏名>
 <ID>00003249</ID>
 <住所>青森県</住所>
</会員データ>

■ test05.xsl

<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="会員データ">
 <xsl:apply-templates select="住所"/>
</xsl:template>
<xsl:template match="住所">
 住所 : <xsl:value-of select="."/>
 <xsl:comment>会員データの住所</xsl:comment>
</xsl:template>
</xsl:stylesheet>

この実行結果はブラウザからは確認することができませんので、
コマンドプロンプトを使用して確認します。

上記2つのファイルを同じフォルダにいれ、 コマンドプロンプトを開きます。開いたら 「msxsl sample05.xml test05.xsl -o xml05.txt」 とコマンドラインに入力し実行します。すると、「xml05.txt」が生成されるので開いてください。 下記のような実行結果になります。

住所 : 青森県<!--会員データの住所-->

■ 要素の生成

■ xsl:element要素

xsl:element」要素はname属性 で指定した名前を持った要素を結果ツリーに出力します。 「xsl:element」タグの間にテンプレートを記述します。 要素は直接記述できるので、通常は使用することはありませんが、 自動的に生成する場合などに便利です。

では例題を取り上げて実際に動作を確認してみましょう。
以下の2つのファイルをご覧下さい。XML文書を「sample06.xml」、 XSLTスタイルシートを「test06.xsl」 として保存します。「sample06.xml」ファイルに記述する xml-stylesheet処理命令href属性に 「test06.xsl」と指定して下さい。

■ sample06.xml

<?xml version="1.0" encoding="Shift_JIS"?>
<?xml-stylesheet href="test06.xsl" type="text/xsl"?>
<会員データ>
 <氏名>例題四郎</氏名>
 <ID>95739</ID>
 <住所>滋賀県</住所>
</会員データ>

■ test06.xsl

<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="会員データ">
 <html>
  <body>
   <xsl:apply-templates select="住所"/>
  </body>
 </html>
</xsl:template>
<xsl:template match="住所">
 <xsl:element name="h1">
 住所 <xsl:value-of select="."/>
 </xsl:element>
</xsl:template>
</xsl:stylesheet>

記述し終えたら上記2つのファイルを同じフォルダにいれ、 sample06.xmlを開くと 下記のような実行結果になります。

住所 滋賀県


■ 属性の生成

■ xsl:attribute要素

xsl:attribute」要素はname属性に記述した名前を持った属性を結果ツリーに出力します。 テンプレートは「xsl:attribute」タグの間に記述します。

では例題を取り上げて実際に動作を確認してみましょう。
以下の2つのファイルをご覧下さい。XML文書を「sample07.xml」、 XSLTスタイルシートを「test07.xsl」 として保存します。「sample07.xml」ファイルに記述する xml-stylesheet処理命令href属性に 「test07.xsl」と指定して下さい。

■ sample07.xml

<?xml version="1.0" encoding="Shift_JIS"?>
<?xml-stylesheet href="test07.xsl" type="text/xsl"?>
<URL>
 <リンク名>カスケーディングスタイルシート</リンク名>
 <アドレス>http://ykr414.com/css/</アドレス>
</URL>

■ test07.xsl

<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="URL">
 <html>
  <body>
   <a>
    <xsl:attribute name="href">
     <xsl:value+of select="アドレス"/>
    </xsl:attribute>
    <xsl:value-of select="リンク名"/>
   </a>
  </body>
 </html>
</xsl:template>
</xsl:stylesheet>

test07.xslファイルでは、<a>タグにhref属性を生成しています。
記述し終えたら上記2つのファイルを同じフォルダにいれ、 sample07.xmlを開くと 下記のような実行結果になります。

カスケーディングスタイルシート


■ 属性値の生成

■ 属性値テンプレート

属性値を出力したい場所に、XPath式を「{」と 「}」で囲んで記述します。 これを属性値テンプレートと呼びます。

では例題を取り上げて実際に動作を確認してみましょう。
以下の2つのファイルをご覧下さい。XML文書を「sample08.xml」、 XSLTスタイルシートを「test08.xsl」 として保存します。「sample08.xml」ファイルに記述する xml-stylesheet処理命令href属性に 「test08.xsl」と指定して下さい。

■ sample08.xml

<?xml version="1.0" encoding="Shift_JIS"?>
<?xml-stylesheet href="test08.xsl" type="text/xsl"?>
<URL>
 <リンク名>カスケーディングスタイルシート</リンク名>
 <アドレス>http://ykr414.com/css/</アドレス>
</URL>

■ test08.xsl

<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="URL">
 <html>
  <body>
   <a href="{アドレス}">
    <xsl:value-of select="リンク名"/>
   </a>
  </body>
 </html>
</xsl:template>
</xsl:stylesheet>

test07.xslファイルでは、<a>タグのhref属性 に「アドレス」要素が出力されるように属性値テンプレートを使用して、 「{アドレス}」と記述します。
記述し終えたら上記2つのファイルを同じフォルダにいれ、 sample08.xmlを開くと 下記のような実行結果になります。

カスケーディングスタイルシート

属性値テンプレート
属性値テンプレートを利用して属性値を出力する方法は、xsl:attributeに比べると、出力後のタグをイメージ しやすくなります。

■ 出力方法の指定

■ xsl:output要素

xsl:output」要素は出力形式文字コードを指定することができます。 下記のようにmethod属性に、テキスト形式 (text)やHTML形式(html) XML形式(xml)などの 出力形式を指定します。Internet Explorer 6ではこの要素を指定しても ブラウザが自動的に表示を変更する事があります。

<xsl:output method="text" encoding="Shift_JIS"/>

では例題を取り上げて実際に動作を確認してみましょう。
以下の2つのファイルをご覧下さい。XML文書を「sample09.xml」、 XSLTスタイルシートを「test09.xsl」 として保存します。「sample09.xml」ファイルに記述する xml-stylesheet処理命令href属性に 「test09.xsl」と指定して下さい。

■ sample09.xml

<?xml version="1.0" encoding="Shift_JIS"?>
<?xml-stylesheet href="test09.xsl" type="text/xsl"?>
<会員データ>
 <氏名>名前五郎</氏名>
 <住所>岐阜県</住所>
 <メール>gorou@ykr414.com</メール>
</会員データ>

■ test09.xsl

<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="Shift_JIS"/>
<xsl:template match="会員データ">
 <xsl apply-templates select="メール"/>
</xsl:template>
<xsl:template match="メール">
 メールアドレスは <b><xsl:value-of select="."/>
</xsl:template>
</xsl:stylesheet>

xsl:output」要素のmethod属性に 「text」、encoding属性に「Shift_JIS」を指定します。 この実行結果はブラウザからは確認することができませんので、 コマンドプロンプトを使用して確認します。

上記2つのファイルを同じフォルダにいれ、 コマンドプロンプトを開きます。開いたら 「msxsl sample09.xml test09.xsl -o xml09.txt」 とコマンドラインに入力し実行します。すると、「xml09.txt」が生成されるので開いてください。 下記のようにシフトJIS、テキスト形式で出力されます。

 メールアドレスは gorou@ykr414.com


«««« back           next »»»»
 
XMLとは
XML文書作成の大まかな流れ
XML文書の記述
XML文書ブラウザでの表示
XSLTスタイルシートの適用
XSLTの構造
XML文書の宣言
文字コードの設定
タグ付けのルール
要素名・属性の指定について
階層構造
実体参照・文字参照について
その他・コメントや処理
DTDの記述
名前空間の指定
情報をデータ化する
階層構造の作成
データからXML文書を作成する
会員情報の記述ルールを定義したDTD..
個々のXML文書を作成する
外部実体参照
テンプレートルール
XSLTスタイルシートを記述する 【ノード】
構造を変換する仕組み
テンプレートルールの定義
テンプレートの動作確認
XPathの仕組み  【XPathの関数】
XPathの表記方法
テキストの抽出  xsl:value-of
ノードのコピー  xsl:copy-of
テキストの生成  xsl:text
コメントの生成  xsl:comment
要素の生成  xsl:element
属性の生成  xsl:attribute
属性値の生成  【属性値テンプレート】
出力方法の指定  xsl:output
変数1  xsl:variable
変数2  xsl:param
変数3  xsl:with-param
繰り返し処理  xsl:for-each
再帰処理  xsl:if test
データの並べ替え  xsl:sort
データに番号をつけて出力  xsl:number
条件式に一致時のみ変換処理を実施 xsl:if
複数条件を設定して処理 xsl:choose
XSLTに別のXSLT.. xsl:import xsl:include
XSLT関数について
データを1件表示
データを決められた件数だけ表示
テキストと要素混在時のテキスト抽出法
データを全て表示する
表示するデータを並べ替える
条件式を設定して表示を変える
データを表にして表示する
複数件のデータを1つの表にして表示
リンクを加える  xsl:element xsl:attribute
データをCSV形式で出力する
DOM(Document Object Model)
DOMとjavascript
ノードにアクセスする
ノードにアクセスする 2
ノードにアクセスする 3
XSLTスタイルシートを読み込む
XSLTスタイルシートの切り替え
DOMとjavascriptで検索機能を作成する 1
DOMとjavascriptで検索機能を作成する 2
DOMとjavascriptで検索機能を作成する 3
DOMとjavascriptで検索機能を作成する (XSLTスタイルシート適用)
SVG(Scalable Vector Graphics)
SVG(Scalable Vector Graphics)の基本
「g」タグによるグループ化
図形の座標変換 transform属性
アニメーションを作成する animate要素
アニメーションを作成する animate要素2
イベント
DOMとJavaScriptを使用したイベント処理
XMLとXSLTからSVGを生成する
msxsl.exeのオプション
エラーメッセージの表示
LINK
XML(eXtensible Markup Language) バナーはダウ
ンロードして
お使い下さい。




Copyright © 2004 - ykr414 . All Rights Reserved.