OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

お願いします。

  • 困ってます
  • 質問No.138615
  • 閲覧数35
  • ありがとう数15
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 40% (2/5)

教えてください。
<ALL>
 <ITEM>
  <ITEMS>一</ITEMS>
  <ITEMS2>1</ITEMS2>
 </ITEM>
 <ITEM>
  <ITEMS>二</ITEMS>
  <ITEMS2>2</ITEMS2>
 </ITEM>
</ALL>
というようなXMLに
<xsl:for-each select="ALL/ITEM">
 <xsl:value-of select="ITEMS" /><BR />
</xsl:for-each>
という処理をかけると、一<BR>二<BR>のように表示されますが、常に一番最初のITEMS(この場合、一)が欲しいときはどうすればいいのでしょうか。
<xsl:value-of select="ITEMS[1]" />や
<xsl:value-of select="ITEMS[position()=1]" />
等を試してみましたが、現在の値が抽出されてしまい失敗しました。参考ページでもいいので教えてください。お願いします。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全1件)

  • 回答No.1
レベル8

ベストアンサー率 72% (26/36)

 1つ目のITEMを選択しておいて、その中のITEMSの1番目を出力したい場合、 <xsl:for-each select="ALL/ITEM[1]">  <xsl:value-of select="ITEMS" /><BR /> </xsl:for-each> とすれば良いと思います。 ...続きを読む
 1つ目のITEMを選択しておいて、その中のITEMSの1番目を出力したい場合、

<xsl:for-each select="ALL/ITEM[1]">
 <xsl:value-of select="ITEMS" /><BR />
</xsl:for-each>

とすれば良いと思います。


 すべてのITEMSの中で1番目を選択すると考えるなら、
xsl:for-eachを使わずに

<xsl:value-of select=".//ITEMS[1]"/>
または
<xsl:value-of select=".//ITEMS"/>

とすることもできます。
 親がITEM要素でなければならないというような条件を付けることもできます。


 ちなみに、xsl:value-ofは、属性selectで指定されたものを
stringに変換して出力するもので、
node-setからstringへの変換は、1つ目のノードのstring-valueになる
(XPathの仕様書を参照して下さい)ので、
以下の3つは同等です。

<xsl:value-of select="ITEMS" />

<xsl:value-of select="ITEMS[1]" />

<xsl:value-of select="ITEMS[position()=1]" />
このQ&Aで解決しましたか?
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ