次のようなXMLファイル(xoBlos 抽出データ)を、練習用に用意しました。
input.xml
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <Root> <ROWS> <商品コード>3001</商品コード> <商品名>みかん</商品名> <単価>238</単価> <産地名>愛媛</産地名> </ROWS> <ROWS> <商品コード>3002</商品コード> <商品名>りんご</商品名> <単価>313</単価> <産地名>青森</産地名> </ROWS> <ROWS> <商品コード>3003</商品コード> <商品名>かき</商品名> <単価>252</単価> <産地名>和歌山</産地名> </ROWS> <ROWS> <商品コード>3004</商品コード> <商品名>メロン</商品名> <単価>485</単価> <産地名>茨城</産地名> </ROWS> <ROWS> <商品コード>3005</商品コード> <商品名>バナナ</商品名> <単価>217</単価> <産地名>沖縄</産地名> </ROWS> </Root>
前回記事で作ってみた、XMLファイルをコピーする原型ですが、
XSLT:探検の始まり
https://xoblos.hatenablog.jp/entry/2021/07/16/022255
この処理と同等の設定を、xoBlos 標準XMLファイル(抽出データ)(上記の input.xml)を入力ファイルにして行ってみましょう。
xml.xslt 変換設定(XSLTスタイルシート)ファイル
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" encoding="UTF-8" indent="yes" /> <xsl:template match="Root"> <Root><xsl:apply-templates/></Root> </xsl:template> <xsl:template match="ROWS"> <ROWS><xsl:apply-templates/></ROWS> </xsl:template> <xsl:template match="node()"> <xsl:copy-of select="."/> </xsl:template> </xsl:stylesheet>
次の箇所でルート要素(Root)をマッチさせています。
<xsl:template match="Root"> <Root><xsl:apply-templates/></Root> </xsl:template>
次の箇所でレコード(行)要素(ROWS)をマッチさせています。
<xsl:template match="ROWS"> <ROWS><xsl:apply-templates/></ROWS> </xsl:template>
これらの Root と ROWS を手繰っていく手法では、下記のような xoBlos XML形式の構造特性を利用しています。
表データと相性の良いxoBlos XML構造
https://xoblos.hatenablog.jp/entry/2018/11/23/153425