XSL转换-XML数据到HTML表的转换

XSL转换-XML数据到HTML表的转换,xml,xslt-2.0,Xml,Xslt 2.0,我试着用XSLT2.0做同样的表,就像在这个问题中一样,但我希望输出像这样-标题将在左侧 有没有办法写一个样式表呢 XML 您只需创建相应的HTML表结构: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" expand-text="yes" version="3.0"> <xsl:out

我试着用XSLT2.0做同样的表,就像在这个问题中一样,但我希望输出像这样-标题将在左侧

有没有办法写一个样式表呢

XML


您只需创建相应的HTML表结构:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    expand-text="yes"
    version="3.0">

  <xsl:output method="html" indent="yes" html-version="5"/>

  <xsl:template match="/">
    <html>
      <head>
        <title>.NET XSLT Fiddle Example</title>
        <style xsl:expand-text="no">
            table {
              border-collapse: collapse; width: 100%;
            }
            th, td {
                border-bottom: 1px solid #ddd;
            }
        </style>
      </head>
      <body>
          <xsl:apply-templates/>
      </body>
    </html>
  </xsl:template>

  <xsl:template match="root">
      <table>
          <tr>
              <td>Time</td>
              <xsl:for-each select="sort(distinct-values(sample/@time))">
                  <td>{.}</td>
              </xsl:for-each>
          </tr>
          <xsl:for-each-group select="sample[starts-with(@label, 'cpu')]" group-by="@label">
              <xsl:sort select="current-grouping-key()"/>
              <tr>
                  <td>{current-grouping-key()}</td>
                  <xsl:for-each select="current-group()">
                      <xsl:sort select="@time"/>
                      <td>{value}</td>
                  </xsl:for-each>
              </tr>
          </xsl:for-each-group>
      </table>
  </xsl:template>

</xsl:stylesheet>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    expand-text="yes"
    version="3.0">

  <xsl:output method="html" indent="yes" html-version="5"/>

  <xsl:template match="/">
    <html>
      <head>
        <title>.NET XSLT Fiddle Example</title>
        <style xsl:expand-text="no">
            table {
              border-collapse: collapse; width: 100%;
            }
            th, td {
                border-bottom: 1px solid #ddd;
            }
        </style>
      </head>
      <body>
          <xsl:apply-templates/>
      </body>
    </html>
  </xsl:template>

  <xsl:template match="root">
      <table>
          <tr>
              <td>Time</td>
              <xsl:for-each select="sort(distinct-values(sample/@time))">
                  <td>{.}</td>
              </xsl:for-each>
          </tr>
          <xsl:for-each-group select="sample[starts-with(@label, 'cpu')]" group-by="@label">
              <xsl:sort select="current-grouping-key()"/>
              <tr>
                  <td>{current-grouping-key()}</td>
                  <xsl:for-each select="current-group()">
                      <xsl:sort select="@time"/>
                      <td>{value}</td>
                  </xsl:for-each>
              </tr>
          </xsl:for-each-group>
      </table>
  </xsl:template>

</xsl:stylesheet>