現在IEにくっついているmsxmlでxmlファイルをcsvに変換させるxslを作成しています。
msxmlでもmsxml3でも動くようなxslファイルを作成したいので
ワーキングドラフト仕様のxslの記述を使用しようと思い下記のようなXMLとxslを作成しました

<?xml version="1.0" encoding="Shift_JIS"?>
<?xml-stylesheet type="text/xsl" href="CSV.XSL"?>
<root>
<data>
<record>
<aaaa>1234</aaaa>
<bbbb>5678</bbbb>
<cccc>9abc</cccc>
<dummy name="ENDRECORD"></dummy>
</record>
<record>
<aaaa>1122</aaaa>
<bbbb>3344</bbbb>
<cccc>5566</cccc>
<dummy name="ENDRECORD"></dummy>
</record>
</data>
</root>

xslのposition()が使えないので
xmlに
<dummy name="ENDRECORD"></dummy>
を追加して
xslで一件分のデータの終わりを認識させています

-csv.xsl-
<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" version="1.0">

<xsl:template match="/">
<xsl:apply-templates select="root/data/record"/>
</xsl:template>

<xsl:template match="root/data/record">
<xsl:for-each select="*">
<xsl:choose>
<xsl:when test="./@name[(.='ENDRECORD')]">&#xA;</xsl:when>
<xsl:otherwise><xsl:value-of select="."/>,</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:template>

</xsl:stylesheet>

しかし、csvのカンマ編集が以下のようになってしまいます。

1234,5678,9abc, ←最後にカンマが残ってしまう
1122,3344,5566,

どなたかワーキングドラフト仕様でも勧告後の仕様でも動くような、csvに変換するxslを作成された方はいませんでしょうか。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

リプライがないようなので。



><dummy name="ENDRECORD"></dummy>を追加して xslで一件分のデータの終わりを認識させています
の意味がよくわかりませんでしたので、データから削除してしまいました。不都合ならば加えて下さい。
必要ないと(私は)思うのですが。

position()がわかるということは、ワーキングドラフト(MSXML)仕様だけでいいですよね。
>どなたかワーキングドラフト仕様でも勧告後の仕様でも動くような
私には無理です(笑)。最近は勧告仕様オンリーですね。

■XMLファイル #変更あり
<?xml version="1.0" encoding="Shift_JIS"?>
<?xml-stylesheet type="text/xsl" href="CSV.XSL"?>
<root>
<data>
<record>
<aaaa>1234</aaaa>
<bbbb>5678</bbbb>
<cccc>9abc</cccc>
</record>
<record>
<aaaa>1122</aaaa>
<bbbb>3344</bbbb>
<cccc>5566</cccc>
</record>
</data>
</root>

■XSL #ワーキングドラフト仕様
-csv.xsl-
<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" version="1.0">

<xsl:template match="/">
<xsl:apply-templates select="root/data/record" />
</xsl:template>

<xsl:template match="root/data/record">
<xsl:apply-templates />
</xsl:template>

<xsl:template match="record/*">
<xsl:value-of select="."/>,</xsl:template>

<xsl:template match="record/*[end()]">
<xsl:value-of select="."/><br/>
</xsl:template>

</xsl:stylesheet>
---------------------
<br/>は変更して下さい。

この回答への補足


補足日時:2001/07/13 14:19
    • good
    • 0
この回答へのお礼

end()を使用すればよかったのですね!
なるほど。

fatbak様、わざわざサンプルまで用意していただきありがとうございます。
返事が遅れた事をお詫び致します。

お礼日時:2001/07/17 17:01

たびたびすみません、fatbackです。


わかりにくい書き方をしてしまいましたので反省/補足(蛇足)します。
私の記述したXSLだと<dummy> をrecordの子要素の最後だと認識しますので、XMLファイルから<dummy>を削除しないと最後にカンマが残ってしまうはずです。あえて書かなかったのですが、わかりにくい表現だったと反省しています。<dummy>を削除すれば<ccc>を最後の要素として認識しますのでカンマが消えます。ようするに<dummy>の存在意義が理解できなかったのです。
以下のXSLで<dummy>要素を削除/追加してみれば、どこに各テンプレートが適用されているかがわかるはずです。<xsl:for-each> を使わない理由も(笑)。

■XSL #ワーキングドラフト仕様(HTML)
-csv.xsl-
<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<html lang="ja">
<head>
<title>XML-CSV-HTMLサンプル</title>
<style>
.yes { color: blue; }
.no { color: red; }
</style>
</head>
<body>
<xsl:apply-templates select="root/data/record" />
</body>
</html>
</xsl:template>

<xsl:template match="root/data/record">
<div>
<strong>■レコード</strong><xsl:apply-templates /></div>
<hr/>
</xsl:template>

<xsl:template match="record/*">
<div>「<xsl:value-of select="."/>」はカンマ<strong class="yes">有り</strong></div>
</xsl:template>

<xsl:template match="record/*[end()]">
<div>「<xsl:value-of select="."/>」はカンマ<strong class="no">無し</strong></div>
</xsl:template>

</xsl:stylesheet>
---
次回からソースの公開は控えさせて頂きますので、御了承下さい。
    • good
    • 0
この回答へのお礼

サンプルソースで納得しました。
補足までしていただきありがとうございます!

お礼日時:2001/07/17 17:04

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QVBA IE11 ファイルのダウンロード

(1)作業環境
Windows 7 Professional SP1
Intel(R) Core(TM) i3­3240 CPU @ 3.40GHz 4.00GB
32ビットオペレーティングシステム
Microsoft Office Standard 2010
Excel ver 14
Internet Explorer11


(2)やりたいこと
あるWebページで手動操作の場合、次をクリックすると添付画像のように「~を開くか、または保存しますか?」というポップアップみたいなのがIEの下に現れます。
<a href="/xxxx/download.do?xxxx&xxxx&xxxx&xxxx&type=log">テスト</a>
「保存(S)」をクリックしてデスクトップに保存する。

これをVBAで操作して、ファイルのアップロードを行いたい。
※添付画像で黒線で消してあるのはIPアドレスです。
※上記「xxxx」は、元が固有名称のためこれで置き換えています。


(3)状況
保存されるものは「upload.log」というファイルです。
このポップアップのVBAでの操作方法はまったくわかりません。
下記ページを参照し、書いていることは理解できるためそのまま適用しましたが、どうやらhrefからリンク(fileURL)を取得してもそこにはファイルはないみたいです。
http://www.vba-ie.net/element/subroutine-filedownload.html
ダウンロードされる意図しているupload.logファイルではなく、ある画面のソースコードになっています。
<a href="....">テスト</a>をクリックしたあとにlogファイルを生成していると予想しています。


(4)質問事項
upload.logのファイルをダウンロードをするにはどういうマクロになるのか

以上、ご存じのかたご教示お願いしいたします。

(1)作業環境
Windows 7 Professional SP1
Intel(R) Core(TM) i3­3240 CPU @ 3.40GHz 4.00GB
32ビットオペレーティングシステム
Microsoft Office Standard 2010
Excel ver 14
Internet Explorer11


(2)やりたいこと
あるWebページで手動操作の場合、次をクリックすると添付画像のように「~を開くか、または保存しますか?」というポップアップみたいなのがIEの下に現れます。
<a href="/xxxx/download.do?xxxx&xxxx&xxxx&xxxx&type=log">テスト</a>
「保存(S)」をクリックしてデスクトップに保存す...続きを読む

Aベストアンサー

目的のファイルのURLはサーバーサイドのプログラム中にあってプログラムで書き出されたHTMLには存在しないとおもいますのでIEでファイルを開いて実際のURLを確認してみては?

Q単独

お世話になります。

現在、サンプルのXSLTスタイルシート内を解析中なのですが、
各テンプレート内に、
<xsl:apply-templates />という単独での要素が、
いくつも出てきます。

ネット上で調べてみたところ、
「ほかのテンプレートの処理に移ることが出来る」
ということのようですが、
いまいち、この単独での要素を、
記述する意味が、よくわかりません。
(最近、XSLTを本で勉強しはじめたばかりなのですが、
  その本には、”<xsl:apply-templates select="mains">”みたいな例しか掲載されておらず、
  <xsl:apply-templates />という単独での説明が、残念ながら存在しておりませんでした・・・)

そこでご質問内容ですが、
XSLTスタイルシート内のテンプレート内に、
<xsl:apply-templates />という単独で、
で記述するのは、
どのようなことを実現させたいときに、
記述しているのでしょうか?

以上になります。
出来ましたら、例などを出していただきまして、
具体的に理解しやすく教えていただけますと
助かります。
どうぞよろしくお願いします。

お世話になります。

現在、サンプルのXSLTスタイルシート内を解析中なのですが、
各テンプレート内に、
<xsl:apply-templates />という単独での要素が、
いくつも出てきます。

ネット上で調べてみたところ、
「ほかのテンプレートの処理に移ることが出来る」
ということのようですが、
いまいち、この単独での要素を、
記述する意味が、よくわかりません。
(最近、XSLTを本で勉強しはじめたばかりなのですが、
  その本には、”<xsl:apply-templates select="mains">”みたいな例しか掲載されておらず、
  <xs...続きを読む

Aベストアンサー

わからないときは、仕様で確認するといいかも。
「select 属性が無いときは、カレントノードの全ての子ノード」ってかいてあったよ?

5.4 Applying Template Rules - XSL Transformations (XSLT)
→ http://www.w3.org/TR/xslt/#section-Applying-Template-Rules

「In the absence of a select attribute, the xsl:apply-templates instruction processes all of the children of the current node, including text nodes.」


だから、
select="node()"
の省略とみなして、いい気がする。

QIE 10,11でアプリがダウンロードできません

Win7-64bit で、私と妻のアカウント(共に管理者)があります。
Internet Explorer を「11」にしたら、妻のアカウントの方だけフリーソフトなどをダウンロード
出来なくなりました(クリックしても何も反応しない)。
試しに「IE11」を削除して「IE9」に戻したら問題なくダウンロードできます。
「IE10]でもだめでした。

セキュリティーソフトやポップアップブロックを無効にしても関係ないようです。
画像などは普通に保存できるのでアプリだけがダメみたいですが、私のアカウントと設定は同じなのになぜ妻の方だけ出来ないのか不明です。
ちなみに「IE10]と「IE11]のインストールは私のアカウントで行っています。

Aベストアンサー

>セキュリティーソフトやポップアップブロックを無効

(1)WindowsファイアーウォールでIEをブロックしていませんか?
(2)ブラウザのセキュリティ設定でブロックしていませんか?
例:ActivXコントロールとスクリプト「無効」→「有効」(複数あり)
例:レベル「高」→「中高」
例:「ツール」「インターネットオプション」「セキュリティ」「レベルのカスタマイズ」「セキュリティの設定」「ダウンロード」「ファイルのダウンロード」「無効」→「有効」
(3)Vista以降、Administratorでログオンしても作業実行時アクセス権が必要な場合が多い。
プログラムアイコンを右クリック「管理者として実行」で作業(解凍・展開、インストール、起動、コピー、アンインストールなど)

ブラウザIEのみを、フリーソフトのFirefoxやGoogle Chromeなどと併用する(IEでないと開かないサイトもあるためIEも必要)・・・プログラムはあなたがダウンロードする。
ちなみに私は平常(軽い)SRWare Iron(Google Chrome派生)を使用、IEでないと見れないサイトのみIEを起動しています。(IEはほとんど使っていない)

>セキュリティーソフトやポップアップブロックを無効

(1)WindowsファイアーウォールでIEをブロックしていませんか?
(2)ブラウザのセキュリティ設定でブロックしていませんか?
例:ActivXコントロールとスクリプト「無効」→「有効」(複数あり)
例:レベル「高」→「中高」
例:「ツール」「インターネットオプション」「セキュリティ」「レベルのカスタマイズ」「セキュリティの設定」「ダウンロード」「ファイルのダウンロード」「無効」→「有効」
(3)Vista以降、Administratorでログオンしても作業実...続きを読む

Qxsl:param要素をxsl:templateのmatch属性で使用するには?

xsl:param要素をxsl:templateのmatch属性で使用するにはどうしたらよいでしょうか?
あるいは、そんなことはできないという情報でも結構です。ご教示ください。

Aベストアンサー

なるほど。補足していただいた説明で、質問の意味は分かりました。

XSLTの仕様上は、xsl:stylesheetの子要素としてxsl:param要素を置いた場合、そこから後ろのxsl:templateでは参照できるはずです。

そこで、以下のような短いXSLTスタイルシートを用意して、
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:param name="n" select="test"/>
<xsl:template match="abc[@attr=$n]">
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="@* | text()"></xsl:template>
</xsl:stylesheet>

以下のXMLファイルに適用してみたところ、
<data>
<abc attr="test1">item1</abc>
<abc attr="test">item2</abc>
<abc attr="test2">item3</abc>
</data>

Xalanでは正しく item2 と出力されました。
しかしXTでは、何も出力されず、XTのオプションで n=test のようにパラメータを設定すると、正しく出力されました。
私の解釈では、Xalanの動作の方が正しいような気がします。

したがって、もしXTを使っているならば、この実装上の違いが原因かと思われます。
この場合、XTの作者に直してもらうか、Xalanなど別のXSLTプロセッサを使うしか、解決方法はないかもしれません。

なるほど。補足していただいた説明で、質問の意味は分かりました。

XSLTの仕様上は、xsl:stylesheetの子要素としてxsl:param要素を置いた場合、そこから後ろのxsl:templateでは参照できるはずです。

そこで、以下のような短いXSLTスタイルシートを用意して、
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:param name="n" select="test"/>
<xsl:template match="abc[@attr=$n]">
<xsl:value-of select="."/>
</xsl:template>
<xsl:...続きを読む

QIEのバージョン確認とダウンロード方法

(1)現在IEは11が最新版のようですが、使用IEがどのバージョンか確認する方法を教えて下さい。
(2)もし10以下であれば、11をダウンロードする方法を教えて下さい。

*Windows7を使用しています。

Aベストアンサー

右上の★マークの右のボタンを押す
バージョン情報

もしくは、
Alt + H そして、次にA を押す

Microsoft Update/Windows Updateを有効にしていると、自動的にインストール(半強制)となっているので、無効などしていない限り半強制的にIE11にアップされています

http://windows.microsoft.com/ja-jp/internet-explorer/ie-11-worldwide-languages
ここからダウンロード方法もあります

Qとtopreceding-siblingを使ったグループ化

下記のxmlを

<xml xmlns:s="uuid:#dummy#" xmlns:dt="#dummy#" xmlns:rs="#dummy#" xmlns:z="#RowsetSchema">
<s:Schema id="RowsetSchema">
<s:ElementType name="row" content="eltOnly" rs:CommandTimeout="30">
<s:AttributeType name="COUNTRY" rs:number="1" rs:nullable="true" rs:writeunknown="true">
<s:datatype dt:type="string" rs:dbtype="str" dt:maxLength="4" rs:fixedlength="true"/>
</s:AttributeType>
<s:AttributeType name="NAME" rs:number="2" rs:writeunknown="true">
<s:datatype dt:type="string" rs:dbtype="str" dt:maxLength="9" rs:fixedlength="true" rs:maybenull="false"/>
</s:AttributeType>
</s:ElementType>
</s:Schema>
<rs:data>
<z:row COUNTRY="JAPAN" NAME="TARO" AGE="12"/>
<z:row COUNTRY="JAPAN" NAME="JIRO" AGE="23"/>
<z:row COUNTRY="CHINA" NAME="SABURO" AGE="34"/>
</rs:data>
</xml>

下記のxslを使用してCOUNTRY毎にグルーピングして
csv形式で出力したいですが以下のxslだとうまくいきません。

<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

<xsl:key name="COUNTRY" match="//z:row" use="@COUNTRY" />

<xsl:template match="/">

<xsl:for-each select="//z:row[not(@COUNTRY = preceding-sibling:://z:row/@COUNTRY)]">
<xsl:value-of select="@COUNTRY" />,<xsl:value-of select="@NAME" />,<xsl:value-of select="@AGE" />
</xsl:for-each>

</xsl:template>
</xsl:stylesheet>

[欲しい結果]
JAPAN,TARO
JAPAN,JIRO
スペース
CHINA,SABURO

下記のxmlを

<xml xmlns:s="uuid:#dummy#" xmlns:dt="#dummy#" xmlns:rs="#dummy#" xmlns:z="#RowsetSchema">
<s:Schema id="RowsetSchema">
<s:ElementType name="row" content="eltOnly" rs:CommandTimeout="30">
<s:AttributeType name="COUNTRY" rs:number="1" rs:nullable="true" rs:writeunknown="true">
<s:datatype dt:type="string" rs:dbtype="str" dt:maxLength="4" rs:fixedlength="true"/>
</s:AttributeType>
<s:AttributeType name="NAME" rs:number="2" rs:writeunknown="true">
<s:dat...続きを読む

Aベストアンサー

#1>"c:\windows\system32\msxml3.dll"にしなければいけないのではないか
あんまり詳しくはないのですが、私は、IE6で動作確認しています。
IE6は、msxml3.dllは使ってなかった(別途ダウンロードしてインストールしなければいけなかったような気がします)と思います。
質問文のXSLで欲しい結果にならない理由がDLLだという意味なら、
それは、違うと思います。
select="//z:row[not(@COUNTRY = preceding-sibling:://z:row/@COUNTRY)]">
でセレクトされるのは、それまでとCOUNTRYがことなるもの
つまり
JAPAN,TARO
CHINA,SABURO
の2つのデータをセレクトすることを意味していると思われるからです。
#1>XMLのデバッグにはどのような方法があるのでしょうか?
この時のこの値という意味なら、開発環境でインスペクトすればいいと思いますが、
構文エラーが表示されるので、まずは、IEで動作させてみるのがいいと思います。
例えば、質問文のXSLであれば、
xmlns:xsl="http://www.w3.org/TR/WD-xsl"に「xsl:keyがない」
ネームスペース「z:」が定義されていないとか表示されます。
あとついでに言えば、<xsl:key>宣言は、xsl:templateの中で使われていないので必要ないと思います。

#1>"c:\windows\system32\msxml3.dll"にしなければいけないのではないか
あんまり詳しくはないのですが、私は、IE6で動作確認しています。
IE6は、msxml3.dllは使ってなかった(別途ダウンロードしてインストールしなければいけなかったような気がします)と思います。
質問文のXSLで欲しい結果にならない理由がDLLだという意味なら、
それは、違うと思います。
select="//z:row[not(@COUNTRY = preceding-sibling:://z:row/@COUNTRY)]">
でセレクトされるのは、それまでとCOUNTRYがことなるもの...続きを読む

QIE11について

初めまして

実は、今回初めてIE11を使いました。

そこで、ツールのインターネットオプションから、削除を選択し、履歴とダウンロード履歴を削除すると互換表示の設定がすべて削除されます。

これは、IE11の機能でしょうか?

Aベストアンサー

>これは、IE11の機能でしょうか?
いいえ

初心者でもわかる! IE で互換表示 (IE10/IE9)
https://support.microsoft.com/kb/2618122/ja

Q

の使い方

xhtml+cssをやり始めです。

実は、<br />と<p></p>の使い方についてわかんなくて教えてくださーい。

普通のhtmlでは改行したいときは、<br />を入れまくっていましたが、xhtmlは<br/>ではなく改行は<p></p>でといわれました。

<p>あいうえお</p>
<p>かきくけこ</p>

といれると改行にはなりますが、1行あけたい場合はどうしますか?

<p>あいうえお</p>
<p></p>
<p>かきくけこ</p>

としても1行あきませんよね?
こういう場合は

<p>あいうえお</p>
<br />
<p>かきくけこ</p>

でいいのですかね???

単純な質問ですみません。

Aベストアンサー

基本的に、<p>タグで段落を作るときに、勝手に一行開けてくれると考えていいかと思います。
そして、<br>は行をあけない普通の改行ということになります。

つまり、一行あけるときは
<p>あいうえお</p>
<p>かきくけこ</p>

行をあけないときは
<p>あいうえお<br />
かきくけこ</p>
となります。

*余談ながら、xhtmlでは<body>の直下に普通のテキストを書くことができませんので、文章を書くときはそれを<p>で囲ってやることが必要となります。

QIE11からのダウングレード

Win7・IE8にてダウンロードセンターよりService Pack 1を入手しました。
トラブルも無く無事インストール出来ましたが、同時にIEが8⇒11へと三段跳びのアップグレードとなってしまいました。そこで11からいまだ未インストールの10、または9へダウングレードするにはどの様な方法が確実なのでしょうか???
宜しくお願い致します。

Aベストアンサー

IE11をアンインストールする
プログラムのアンインストール→インストールされた更新プログラムの表示

すると、以前のIEのバージョンに戻るので、IE9なりIE10なりをインストール
IE9やIE10をインストールしても、デフォルトだと最新のIEに自動配信でバージョンアップするので、IE11の自動配信無効化にするのがよいでしょう。
もし、IE9を入れてIE10を無効にしたいなら、IE10の無効化も行ってください。
IE9の無効化をしたいなら、IE9の無効化も行ってください。
IE8のままなら、IE9/10/11の自動配信の無効化をそれぞれ行ってください。

インストール方法をよくみてから行ってください

IE11自動配信無効化ツール
http://www.microsoft.com/ja-jp/download/details.aspx?id=40722
IE10自動配信無効化ツール
http://www.microsoft.com/ja-jp/download/details.aspx?id=36512
IE9自動配信無効化ツール
http://www.microsoft.com/ja-jp/download/details.aspx?id=179

IE11をアンインストールする
プログラムのアンインストール→インストールされた更新プログラムの表示

すると、以前のIEのバージョンに戻るので、IE9なりIE10なりをインストール
IE9やIE10をインストールしても、デフォルトだと最新のIEに自動配信でバージョンアップするので、IE11の自動配信無効化にするのがよいでしょう。
もし、IE9を入れてIE10を無効にしたいなら、IE10の無効化も行ってください。
IE9の無効化をしたいなら、IE9の無効化も行ってください。
IE8のままなら、IE9/10/11の自動配信の無効化をそれ...続きを読む

QXML → table (XSLで)

XML

<pe>
<ko>
<na> goo1 </na>
<yu> 111 </yu>
</ko>
<ko>
<na> goo2 </na>
<yu> 222 </yu>
</ko>
</pe>

のようなXMLをテーブルでXSlで

<tr>
<td>goo1 111</td>
<td>goo2 222</td>
</tr>

そして、3件の場合は、

<tr>
<td>goo1 111</td>
<td>goo2 222</td>
</tr>
<tr>
<td>goo3 333</td>
</tr>


と表したいのですが、悩んでいます…。
自分でも、いろいろ試したのですが、うまく行きません。
ご助言、宜しくお願いします…。

Aベストアンサー

私も同じ様なものを考えて次のような手を思いつきました。

Code:A
<xsl:if test="position() mod 3 = 1">
<xsl:text disable-output-escaping="yes">&lt;tr&gt;</xsl:text>
</xsl:if>

もし位置が3で割って1余るなら <tr> を出力する

Code:B
<xsl:if test="position() mod 3 = 0">
<xsl:text disable-output-escaping="yes">&lt;/tr&gt;</xsl:text>
</xsl:if>

もし位置が3で割って余りが0ならば </tr> を出力する

上記の二つを <xsl:for-each select="ko"> 全ての ko について繰り返す

すべて終わったら Code:B をもう一度呼び出す。

サンプルは、次のページにあります。
http://skyandcloud.homedns.org/software/download.html

参考URL:http://skyandcloud.homedns.org/software/download.html

私も同じ様なものを考えて次のような手を思いつきました。

Code:A
<xsl:if test="position() mod 3 = 1">
<xsl:text disable-output-escaping="yes">&lt;tr&gt;</xsl:text>
</xsl:if>

もし位置が3で割って1余るなら <tr> を出力する

Code:B
<xsl:if test="position() mod 3 = 0">
<xsl:text disable-output-escaping="yes">&lt;/tr&gt;</xsl:text>
</xsl:if>

もし位置が3で割って余りが0ならば </tr> を出力する

上記の二つを <xsl:for-each select="ko"> 全ての ko について繰り返す

す...続きを読む


人気Q&Aランキング

おすすめ情報