0

私はこのようなXMLを持っています

<A Rank="1">
  <a1>1</a2>
  <a1>1</a2>
</A1>
<A Rank="2">
  <a1>1</a2>
  <a1>1</a2>
</A1>

私の XSLT サンプルは、そのランク値を使用するためのものです。

<tr>
  <td align="left">
    <xsl:text>#</xsl:text>
    <xsl:value-of select="@Rank"/>
    <xsl:text>:</xsl:text>
    <xsl:value-of select="a1"/>
  </td>
</tr>

ランク値を印刷したい。どうやって?

4

1 に答える 1

0

正しい XSLT は次のようになります。

<t>
  <A Rank="1">
    <a1>1</a1>
    <a2>1</a2>
  </A>
  <A Rank="2">
    <a1>1</a1>
    <a2>4</a2>
  </A>
</t>

XSLT1:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

  <xsl:template match="A">
    <tr>
      <td align="left">
        <xsl:text>#</xsl:text>
        <xsl:value-of select="@Rank"/>
        <xsl:text>:</xsl:text>
        <xsl:value-of select="sum(child::*)"/>
      </td>
    </tr>
  </xsl:template>
</xsl:stylesheet>

出力1:

  <tr><td align="left">#1:2</td></tr>
  <tr><td align="left">#2:5</td></tr>

xslt2:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

  <xsl:template match="A">
    <tr>
      <td align="left">
        <xsl:text>#</xsl:text>
        <xsl:value-of select="@Rank"/>
        <xsl:text>:</xsl:text>
        <xsl:for-each select="child::*">
          <xsl:value-of select="."/>
          <xsl:if test="position()!=last()">
            <xsl:text>:</xsl:text>
          </xsl:if>
        </xsl:for-each>
      </td>
    </tr>
  </xsl:template>
</xsl:stylesheet>

出力 2:

  <tr><td align="left">#1:1:1</td></tr>
  <tr><td align="left">#2:1:4</td></tr>
于 2013-05-29T04:49:31.377 に答える