スポンサーリンク

XSLT変換で必ず書くものについて解説

概要

XSLT変換をするにあたって、ほぼ必ず書くコードについて記載する。

サンプルコード

変換前XMLサンプル

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="sample.xsl"?>
<root>
    <data>xmldata</data>
</root>

XSLT

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="3.0">
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
    <xsl:template match="/">
        <a><xsl:value-of select="root/data"></xsl:value-of></a>
        <b><xsl:value-of select="root/data"></xsl:value-of></b>
    </xsl:template>
</xsl:stylesheet>

 

変換結果

<?xml version="1.0" encoding="UTF-8"?>
<a>xmldata</a>
<b>xmldata</b>

解説

XML側

<?xml-stylesheet type="text/xsl" href="sample.xsl"?>

XML側で必要なのは、上記の文。
XMLバージョン宣言後に記載する。

こちらでは、どのxslファイルを使ってXSLTの変換をするかを処理している。

XSLT側

バージョンや文字コードの宣言

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="3.0">
~省略~
</xsl:stylesheet>

1行目にxmlのバージョンと文字コードの宣言をする。

<xsl:stylesheet>要素では「xmlns:xsl」属性に名前空間を指定し、「version」属性にXSLTのバージョンをしている。最新は3.0。
基本的に<xsl:stylesheet>要素内にXSLTのコードをすべて書く。

※名前空間はxsl接頭辞がついたタグは、”http://www.w3.org/1999/XSL/Transform”のところにあるといった意味合い。

出力形式

<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

結果の出力は、指定がなければXSLTプロセッサ(MSXSLなど)によって出力のしかたが決まる。
<xsl:output>要素では、出力方法を指定できる。

method属性では、xml,htmlなどのファイル形式の指定。

indent属性は、インデントをつけて見やすい形式にする。ただし、どのようにインデントができるかはXSLTプロセッサによる。

テンプレートの宣言

<xsl:template match="/">

これは、match属性でパスを指定して、xmlファイルの<root>要素に対して変換処理を行うといったテンプレート宣言。

 

XSLT
スポンサーリンク
シェアする
trelab