中の技術日誌
 

XMLってなぁに? 初級編 第12回

2005/08/14

この文書は執筆時点(2004/後半)での知識を基にしており、現状とあっていない可能性があります。

第12回

今回はXPathについて勉強してみよう。

XMLはツリー構造というのはもう理解してもらっていると思うが、身近にツリー構造を持っているものがもう1つある。
それがファイルシステム。

c:\documents and settings\user\filename.ext

などと使うがこれらはファイルパスと呼ばれている。

同じようにある位置を指し示す為の規格がXPATHだ。

今回使うXMLはややこしくなってほしいので、前回までのXMLには引退していただいて新しいXMLを定義する。

a.xml
<?xml version="1.0" encoding="utf-8"?>
<ROOT>
 <店舗>
  <店舗名>東京店</店舗名>
  <在庫>
   <商品 値段="5000" 個数="2">HDDレコーダ</商品>
   <商品 値段="2000" 個数="1">CDプレイヤー</商品>
  </在庫>
 </店舗>
 <店舗>
  <店舗名>大阪店</店舗名>
  <在庫>
   <商品 値段="5000" 個数="3">HDDレコーダ</商品>
   <商品 値段="1800" 個数="2">CDプレイヤー</商品>
   <商品 値段="1800" 個数="2">PC</商品>
  </在庫>
 </店舗>
</ROOT>

そこそこ複雑なXMLだ。
このXMLはある商店の店舗情報とその在庫情報を網羅したXMLである。
店舗は大阪と、東京にあり、各店舗ごとに在庫管理を行っている。

このXMLからまずは店舗の一覧を抽出する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
東京店大阪店

このようにテンプレートにばっちりとパスを記述する。
この場合には要素に対するテンプレートというよりは、構造を含んだ要素に対するテンプレートと考えるといい。

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



勉強会: 05/18 大阪 登録受付中

中の技術日誌
コンテンツ
わんくま同盟
わんくま同盟
わんくま同盟
広告
バナー
MVP LOGO
MSMVP Visual C# Since 2004/04-2007/03
MCP LOGO
070-316
姉妹サイト
姉妹サイト:じゃんぬのC#, VB.NET 入門
じゃんぬの
C#, VB.NET 入門
検索
Google

ブログ本家
広告