簡體   English   中英

XML / XSL到HTML表

[英]XML/XSL to HTML table

有人可以幫我從我的行循環中獲取columndefinition / column / cssclass的值嗎?

因此,在我的xsl中,我想在“行” forloop期間為同一列位置插入cssclass,並將其放入我的<td class =“ PullItFromColumnDefition”>

希望這是有道理的。 誰能幫我解決這個問題?

謝謝。

我的XML看起來像這樣:

<report>
  <columndefinition>
    <column>
      <headertext>Test Column 1</headertext>
      <cssclass>test1</cssclass>
    </column>
    <column>
      <headertext>Test Column 2</headertext>
      <cssclass>test2</cssclass>
    </column>
  </columndefinition>
  <rows>
    <row>
      <column>3</column>
      <column>11/04/2002</column>
    </row>
    <row>
      <column>22</column>
      <column>04/15/2003</column>
    </row>
    <row>
      <column>134</column>
      <column>04/15/2003</column>
    </row>
    <row>
      <column>63</column>
      <column>11/03/2004</column>
    </row>
    <row>
      <column>65</column>
      <column>11/03/2004</column>
    </row>
    <row>
      <column>66</column>
      <column>11/03/2004</column>
    </row>
  </rows>
</report>

這是我現在的xsl:

<xsl:template match="/report">
  <html>
  <body>
    <h2>Report Sample</h2>
    <table border="1">
      <thead>
        <xsl:for-each select="columndefinition/column">
        <th><xsl:value-of select="headertext"/></th>
        </xsl:for-each>
      </thead>
      <tbody>
      <xsl:for-each select="rows/row">
      <tr>
        <xsl:for-each select="column">
        <td><xsl:value-of select="."/></td>
        </xsl:for-each>
      </tr>
      </xsl:for-each>
      </tbody>
    </table>
  </body>
  </html>
</xsl:template>
...
<xsl:for-each select="column">
  <xsl:variable name="column-index" select="position()"/>
  <td class="{/report/columndefinition/column[$column-index]/cssclass}">
    <xsl:value-of select="."/>
  </td>
</xsl:for-each>
...

作為Pavel解決方案的替代方案,您可以使用XSL密鑰:

<xsl:key 
  name="kCssClass" 
  match="cssclass" 
  use="count(../preceding-sibling::column) + 1" 
/>

<!-- later, in <column> context… -->
<td class="{key('kCssClass', position())}">

該鍵將通過其父<column>位置來索引<cssclass>節點。 對於較大的輸入,這有可能運行得更快。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM