• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:xslでの表示)

XSLでの表示方法

このQ&Aのポイント
  • XSLを使ってXMLのタイトルと内容を表示する方法について説明します。
  • タイトルA、no1、no2、no3、no4、タイトルB、no5、no6、no7、no8のような表示を実現するためには、XSLのfor-each文を使います。
  • for-each文を使って、タイトルとそれに続くP要素の内容を順番に表示することで、目的の表示形式を実現できます。

質問者が選んだベストアンサー

  • ベストアンサー
  • jo-ji
  • ベストアンサー率72% (26/36)
回答No.1

 だいぶ経ってしまっているので、回答が役に立つのか分かりませんが、 一応書いておきます。  正確な意図が分かりにくいので、この回答が見当違いかもしれません。 <xsl:for-each select="//title">  <P><xsl:value-of select="."/></P>  <xsl:for-each select="../P">   <P><xsl:value-of select="."/></P>  </xsl> </xsl> と記述しようとしている場所に <xsl:apply-templates select="//title | //P"/> と記述しておいて、 <xsl:template match="title">  <!-- title要素に対する処理 --> </xsl:template> <xsl:template match="P">  <!-- P要素に対する処理 --> </xsl:template> というテンプレートを呼び出すようにすれば良いのでは?  もちろん、apply-templatesでtitle要素とP要素を区別しない点が 意図と異なるかもしれませんが。  この場合のデータ構造があまり良くないので、例えば <Group>  <title>タイトルA</title>  <P>no1</P>  <P>no2</P>  <P>no3</P>  <P>no4</P> </Group> <Group>  <title>タイトルB</title>  <P>no5</P>  <P>no6</P>  <P>no7</P>  <P>no8</P> </Group> のようにデータ構造をより良いものにしてから、 という手もあります。 こうするとだいぶ処理が楽になります。  最後に、余計な忠告かもしれませんが、 xsl:for-eachにこだわり過ぎないで柔軟に考えた方が良いのでは、 と私は思います。

関連するQ&A