XML
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
* [[XML]]
よく使われているようだが、よく知らないので作りました。
#contents
** XSL
XSL(eXtensible Stylesheet Language)は、XMLに対してスタイ...
xmlの最初に
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="books.xsl" ?>
とすると、books.xslによって整形されて出力されます。例とし...
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="books.xsl" ?>
<books title="書籍">
<owner address="hoge@hoge.com">hidekazu</owner>
<book isbn="111">
<name>あああ</name>
<author>hoge</author>
<category>java</category>
<price>1000</price>
<url>http://test.com</url>
</book>
<book isbn="222">
<name>いいい</name>
<author>ttt</author>
<category>ruby</category>
<price>2000</price>
<url>http://test2.com</url>
</book>
<book isbn="333">
<name>いいい</name>
<author>ttt</author>
<category>vb</category>
<price>3000</price>
<url>http://test3.com</url>
</book>
</books>
というxmlがあり、スタイルシートはbooks.xslを使うので、
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Tr...
<xsl:output method="html" encoding="UTF-8" />
<xsl:template match="/">
<html>
<head>
<title><xsl:value-of select="books/@title" /></title>
</head>
<body>
<h1>
<xsl:value-of select="books/@title" />
</h1>
<xsl:for-each select="/books/book">
<xsl:sort select="category" data-type="text" order="...
<xsl:value-of select="category" />
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:value-of select="url" />
</xsl:attribute>
<xsl:value-of select="author" />
</xsl:element>
<xsl:choose>
<xsl:when test="price[number(.) <= 2000]">
<b><xsl:value-of select="price" /></b>円
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="price" />円
</xsl:otherwise>
</xsl:choose>
<br />
</xsl:for-each>
<xsl:value-of select="books/owner" />
</body>
</html>
</xsl:template>
</xsl:stylesheet>
とすると、このxslに従って、xmlが整形されて出力されます。
xsl:output
形式と言語を決めます。
xsl:template match="/"
xmlのどこを起点とするかを設定してます。
xsl:value-of select="books/@title"
xmlの値を出力します。@は属性の場合です。
xsl:for-each
繰り返しです。
xsl:sort
ソートができます。
xsl:element
要素を指定します。
xsl:attribute
属性を指定します。
xsl:choose
分岐です。case文
xsl:when test="price[number(.) <= 2000]
testに結果を返して、条件が成立した場合に次が実行されます...
** TIPS
** リンク
** 参考書籍
** コメント
-#comment
終了行:
* [[XML]]
よく使われているようだが、よく知らないので作りました。
#contents
** XSL
XSL(eXtensible Stylesheet Language)は、XMLに対してスタイ...
xmlの最初に
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="books.xsl" ?>
とすると、books.xslによって整形されて出力されます。例とし...
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="books.xsl" ?>
<books title="書籍">
<owner address="hoge@hoge.com">hidekazu</owner>
<book isbn="111">
<name>あああ</name>
<author>hoge</author>
<category>java</category>
<price>1000</price>
<url>http://test.com</url>
</book>
<book isbn="222">
<name>いいい</name>
<author>ttt</author>
<category>ruby</category>
<price>2000</price>
<url>http://test2.com</url>
</book>
<book isbn="333">
<name>いいい</name>
<author>ttt</author>
<category>vb</category>
<price>3000</price>
<url>http://test3.com</url>
</book>
</books>
というxmlがあり、スタイルシートはbooks.xslを使うので、
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Tr...
<xsl:output method="html" encoding="UTF-8" />
<xsl:template match="/">
<html>
<head>
<title><xsl:value-of select="books/@title" /></title>
</head>
<body>
<h1>
<xsl:value-of select="books/@title" />
</h1>
<xsl:for-each select="/books/book">
<xsl:sort select="category" data-type="text" order="...
<xsl:value-of select="category" />
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:value-of select="url" />
</xsl:attribute>
<xsl:value-of select="author" />
</xsl:element>
<xsl:choose>
<xsl:when test="price[number(.) <= 2000]">
<b><xsl:value-of select="price" /></b>円
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="price" />円
</xsl:otherwise>
</xsl:choose>
<br />
</xsl:for-each>
<xsl:value-of select="books/owner" />
</body>
</html>
</xsl:template>
</xsl:stylesheet>
とすると、このxslに従って、xmlが整形されて出力されます。
xsl:output
形式と言語を決めます。
xsl:template match="/"
xmlのどこを起点とするかを設定してます。
xsl:value-of select="books/@title"
xmlの値を出力します。@は属性の場合です。
xsl:for-each
繰り返しです。
xsl:sort
ソートができます。
xsl:element
要素を指定します。
xsl:attribute
属性を指定します。
xsl:choose
分岐です。case文
xsl:when test="price[number(.) <= 2000]
testに結果を返して、条件が成立した場合に次が実行されます...
** TIPS
** リンク
** 参考書籍
** コメント
-#comment
ページ名: