XSL/XSLT
1名無しさん@お腹いっぱい。
01/09/05 10:49ID:dYMWGvtU 語ろう。ていうか教えて。
2名無しさん@お腹いっぱい。
01/09/05 10:50ID:dYMWGvtU XSLT文書の実行時書き換えってどうやるんでしょう。涙。
3名無しさん@お腹いっぱい。
01/09/05 12:46ID:rFbk2SFA DOMでXSLTを生成すりゃいいんでないの?
4名無しさん@お腹いっぱい。
01/09/05 19:00ID:.fOk25kQ XSLTで読み書き可能なグローバル変数を使うにはどうしたらいいの?
<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="." version="1.0" exclude-result-prefixes="msxsl user">
<xsl:output method="html" version="4.0" encoding="Shift_JIS"/>
<xsl:variable name="default_name"/>
<xsl:template match="/root">
<html lang="ja">
<head>
<title><xsl:value-of select="title"/></title>
</head>
<body>
<h1><xsl:value-of select="title"/></h1>
<xsl:apply-templates select="book" />
</body>
</html>
</xsl:template>
<xsl:template match="talk">
<xsl:if test="@name!=''">
<xsl:value-of select="@name"/>「
</xsl:if>
<xsl:if test="@name=''">
<xsl:value-of select="$default_name"/>「
</xsl:if>
</xsl:template>
<xsl:template match="defaultname">
<xsl:variable name="default_name" select="."/>
</xsl:template>
こんな感じで書いてるんだが、変数の書き換えができないみたい。
環境は MSXML3.0SP1 + MSXSL.exe
<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="." version="1.0" exclude-result-prefixes="msxsl user">
<xsl:output method="html" version="4.0" encoding="Shift_JIS"/>
<xsl:variable name="default_name"/>
<xsl:template match="/root">
<html lang="ja">
<head>
<title><xsl:value-of select="title"/></title>
</head>
<body>
<h1><xsl:value-of select="title"/></h1>
<xsl:apply-templates select="book" />
</body>
</html>
</xsl:template>
<xsl:template match="talk">
<xsl:if test="@name!=''">
<xsl:value-of select="@name"/>「
</xsl:if>
<xsl:if test="@name=''">
<xsl:value-of select="$default_name"/>「
</xsl:if>
</xsl:template>
<xsl:template match="defaultname">
<xsl:variable name="default_name" select="."/>
</xsl:template>
こんな感じで書いてるんだが、変数の書き換えができないみたい。
環境は MSXML3.0SP1 + MSXSL.exe
01/09/06 03:57ID:cEL2v6yw
「読み書き可能なグローバル変数」の直接の解では無いし
元の XML ややりたい事がはっきりしないので的外れかもしれんが
<xsl:variable name="default_name"/>
のところを
<xsl:variable name="default_name">
<xsl:value-of select="/root/defaultname" />
</xsl:variable>
とかにするだけではダメなのか?
元の XML ややりたい事がはっきりしないので的外れかもしれんが
<xsl:variable name="default_name"/>
のところを
<xsl:variable name="default_name">
<xsl:value-of select="/root/defaultname" />
</xsl:variable>
とかにするだけではダメなのか?
01/09/06 23:44ID:???
7名無しさん@お腹いっぱい。
01/09/10 14:21ID:CV8.18JQ XSLTの文法チェッカってあり?
8名無しさん@お腹いっぱい。
01/09/11 12:11ID:liJMw8bE9名無しさん@お腹いっぱい。
01/09/11 14:24ID:liJMw8bE XSLTで、たくさんある要素をテーブルにしたいんだけど
どう書けばいいんだろう???
<datalist>
<data>a</data>
<data>b</data>
<data>c</data>
<data>d</data>
<data>e</data>
<data>f</data>
</datalist>
を
a b c
d e f
という表にするイメージ。
どう書けばいいんだろう???
<datalist>
<data>a</data>
<data>b</data>
<data>c</data>
<data>d</data>
<data>e</data>
<data>f</data>
</datalist>
を
a b c
d e f
という表にするイメージ。
01/09/11 14:30ID:???
(´-`).。oO(HTMLのtable要素なのか、
データベースのテーブルなのか、TeXのテーブルなのか、
一体どのテーブルなんだろう?)
データベースのテーブルなのか、TeXのテーブルなのか、
一体どのテーブルなんだろう?)
11名無しさん@お腹いっぱい。
01/09/11 15:05ID:liJMw8bE あーごみんなさい。HTMLのtable要素です。
<table>
<tr><td>a</td><td>b</td><td>c</td></tr>
<tr><td>d</td><td>e</td><td>f</td></tr>
</table>
にしたいのです。
<table>
<tr><td>a</td><td>b</td><td>c</td></tr>
<tr><td>d</td><td>e</td><td>f</td></tr>
</table>
にしたいのです。
12名無しさん@お腹いっぱい。
01/09/13 14:48ID:botIizDw <xsl:for-each select="datalist/data">
<xsl:if test="position() mod 3 = 0"><tr></xsl:if>
<td>…</td>
<xsl:if test="position() mod 3 = 0"></tr></xsl:if>
</xsl:for-each>
のようにやってみたのですが、
(1)<td>〜</td><td>〜</td><tr><td>〜</td></tr>の順に出力される
(2)<tr>が<tr>と出力されるためタグとして機能しない
という状態になっています。かなりしょんぼりしています。
<xsl:if test="position() mod 3 = 0"><tr></xsl:if>
<td>…</td>
<xsl:if test="position() mod 3 = 0"></tr></xsl:if>
</xsl:for-each>
のようにやってみたのですが、
(1)<td>〜</td><td>〜</td><tr><td>〜</td></tr>の順に出力される
(2)<tr>が<tr>と出力されるためタグとして機能しない
という状態になっています。かなりしょんぼりしています。
14名無しさん@お腹いっぱい。
01/09/14 21:41ID:LySoniQw XSLTの文法チェッカってありますか?
15名無しさん@お腹いっぱい。
01/09/14 21:44ID:LySoniQw あ。>>7さんとだぶってた。すんません。
レスを投稿する