- - PR -
xsl:for-eachについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-03-09 10:57
xslの書き方がわかりませんので、ご教授ください。
xml ---------------------------------------------------------------- <?xml version="1.0" encoding="Shift_JIS"?> <contents> <abcd> <name>一個目</name> <xyz>111</xyz> <xyz>222</xyz> <xyz>333</xyz> </abcd> <abcd> <name>二個目</name> <xyz>444</xyz> <xyz>555</xyz> <xyz>666</xyz> </abcd> <abcd> <name>三個目</name> <xyz>777</xyz> <xyz>888</xyz> <xyz>999</xyz> </abcd> </contents> ---------------------------------------------------------------- xsl ---------------------------------------------------------------- <xsl:for-each select="//abcd"> <xsl:for-each select=xyz"> <xsl:if test="???????"> <xsl:value-of select="../name"/> </xsl:if> </xsl:for-each> </xsl:for-each> ---------------------------------------------------------------- とあるとき、 一度、判定文を通り<xsl:value-of select="../name"/>を表示したら 次のabcdに行くまでは表示しないようにしたいと思っています。 ようはタブってnameを表示したくありません。 以上、よろしくお願いします。 |
|
投稿日時: 2004-03-09 11:38
先頭なら簡単ですが
<xsl:for-each select="//abcd"> <xsl:value-of select="name"/> <xsl:for-each select=xyz"> </xsl:if> </xsl:for-each> </xsl:for-each> 途中から変更では、testしだいです。 test="position() = 2" など 手続き言語の発想から、抜け出さないとXSLTは完全理解とはいえません。 [ メッセージ編集済み 編集者: MMX 編集日時 2004-03-09 11:45 ] |
|
投稿日時: 2004-03-09 12:09
ども、ほむらです。
マサキ氏へ ひとつだけを表示したいのならば走査させるのではなくて XPathで抽出してあげてから出力したほうがいいと思うのですけど。。 あと、たぶん、<xsl:for-each select="//abcd">は <xsl:for-each select="./abcd">でいいと思います。 |
|
投稿日時: 2004-03-09 12:52
MMXさん
ほむらさん 返信ありがとうございました。 自分のイメージだと for(;{ for(;{ if(条件){ System.out.println("****"); break; } } } break;みたいなのがあればと思ったんですが 考え方が違うんですね XPathを調べてみます。 ありがとうございました。 |
1