中の技術日誌ブログ

C#とC++/CLIと
VBと.NETとWindowsで戯れる
 

目次

Blog 利用状況

ニュース

自己紹介

東京でソフトウェアエンジニアをやっています。
お仕事大募集中です。
記事執筆や、講師依頼とかでも何でもどうぞ(*^_^*)
似顔絵 MSMVPロゴ
MSMVP Visual C# Since 2004/04-2013/03

記事カテゴリ

書庫

日記カテゴリ

00-整理

01-MSMVP

XMLってなぁに?(第13回)

問い:全店舗の商品一覧を取得するxslを考えてみよう。

前回までのxslを多少変更して見た結果がこれだ。

a.xsl
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="text" />
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="/ROOT/店舗/在庫"><xsl:value-of select="商品" />
</xsl:template>
</xsl:stylesheet>
結果.txt
東京店HDDレコーダ大阪店HDDレコーダ

うーむわけがわからん。
value-ofには商品を指定しているのに店舗名は出ていないし、商品は最初の1個しか表示されていない。
まず商品が1個しか表示されていないのは、value-ofが1個だけ表示する機能しかないからで、同じ要素が続けて登場したときには対応できない。
このような場合にはfor-eachを利用する。

a.xsl
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="text" />
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="/ROOT/店舗/在庫">
 <xsl:for-each select="商品">
  <xsl:value-of select="text()" />
 </xsl:for-each>
</xsl:template>
</xsl:stylesheet>
結果.txt
東京店HDDレコーダCDプレイヤー大阪店HDDレコーダCDプレイヤーPC

このように複数個出現する要素にはfor-eachを利用しよう。

#今回は完全にxslの内容だったし、次回もxslになっちゃうな。

投稿日時 : 2004年10月4日 23:54

コメントを追加

No comments posted yet.
タイトル
名前
URL
コメント