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

XSLTのselectの指定

このQ&Aのポイント
  • XSLTのselectを使用して、XMLデータ中の特定の要素を選択する方法について教えてください。
  • 注文全体について一冊あたりの平均価格を求めるために、XSLTのselectにどのような指定を行えばよいか教えてください。
  • XSLTを使用して、XMLデータ中の要素の合計を取得する方法について説明してください。

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

  • ベストアンサー
  • dellko
  • ベストアンサー率100% (1/1)
回答No.1

初書き込みです。 時間がったているので解決したかと思いますが、レスしますね。 以下のテンプレートを使用すれば、出来るのかなと思います。 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <body> <xsl:apply-templates select="purchase-order" /> </body> </html> </xsl:template> <xsl:template match="purchase-order"> <xsl:variable name="total_sum"> <xsl:call-template name="culc_sum"> <xsl:with-param name="tanka" select="book/price" /> <xsl:with-param name="suryou" select="book/count" /> </xsl:call-template> </xsl:variable> <xsl:text>合 計</xsl:text> <xsl:value-of select="format-number( $total_sum div sum(book/count),'#,###')" /> </xsl:template> <xsl:template name="culc_sum"> <xsl:param name="tanka" /> <xsl:param name="suryou" /> <xsl:choose> <xsl:when test="not($tanka) or not($suryou)"> <xsl:value-of select="0" /> </xsl:when> <xsl:otherwise> <xsl:variable name="sum_data"> <xsl:call-template name="culc_sum"> <xsl:with-param name="tanka" select="$tanka[position()>1]" /> <xsl:with-param name="suryou" select="$suryou[position()>1]" /> </xsl:call-template> </xsl:variable> <xsl:value-of select="number($tanka[1]) * number($suryou[1]) + $sum_data" /> </xsl:otherwise> </xsl:choose> </xsl:template> </xsl:stylesheet>

noname#20378
質問者

お礼

実は解決しておりませんでした(汗) ご回答ありがとうございます。 (僕が未熟なだけかもしれないけど)ソース見てこんな書き方もあるんだなぁと感心しました

その他の回答 (1)

  • dellko
  • ベストアンサー率100% (1/1)
回答No.2

訂正です。 <xsl:text>合 計</xsl:text> ではなくて、 <xsl:text>平均価格</xsl:text> ですね。

関連するQ&A