Xpath - 我需要帮助为html制作一个表

时间:2016-05-25 20:04:41

标签: html xslt xpath html-table

我正试图用这个来制作一张桌子:

输入:

<root>
<vendedor>
     <nombre>nombre1</nombre>
     <descrip>descrip1</descrip>
</vendedor>
 <vendedor>
     <nombre>nombre1</nombre>
     <descrip>descrip2</descrip>
</vendedor>
<vendedor>
     <nombre>nombre1</nombre>
     <descrip>descrip3</descrip>
</vendedor>
....
<vendedor>
     <nombre>nombre2</nombre>
     <descrip>descrip1</descrip>
</vendedor>
<vendedor>
     <nombre>nombre2</nombre>
     <descrip>descrip3</descrip>
</vendedor>
....
</root>

的xsl:

<xsl:for-each select="//vendedor[not(nombre=preceding-sibling::vendedor/nombre)]/nombre">
<xsl:value-of select="."/>
    <xsl:for-each select="//vendedor[nombre=current()]/descrip">
    <xsl:value-of select="."/>
    </xsl:for-each>
</xsl:for-each> 

我想要的是像这样的表格将xslt转换为带有tr,td和类似内容的HTML:

|_____________nombre____________|
|descrip|descrip|descrip|descrip|
|descrip|descrip|descrip|descrip|

我一直在尝试,但我没有得到我想要的东西......,有人可以帮助我吗?

预期产出:

<table>
<tr>
  <th>nombre</th>
</tr>
<tr>
  <td>descrip</td>
  <td>descrip</td>
  <td>descrip</td>
  <td>descrip</td>
</tr>
<tr>
  <td>descrip</td>
  <td>descrip</td>
  <td>descrip</td>
  <td>descrip</td>
</tr>
<tr>
.....
</tr>
....
<tr>
  <th>nombre</th>
</tr>
<tr>
  <td>descrip</td>
  <td>descrip</td>
  <td>descrip</td>
  <td>descrip</td>
</tr>
.....
</xsl:for-each>
</table>

1 个答案:

答案 0 :(得分:0)

你可以用HTML制作一个表格:

<xsl:template match="/">
  <html>
  <body>
  <h2>My CD Collection</h2>
  <table border="1">
    <tr bgcolor="#9acd32">
      <th>Title</th>
      <th>Artist</th>
    </tr>
    <xsl:for-each select="catalog/cd">
    <tr>
      <td><xsl:value-of select="title"/></td>
      <td><xsl:value-of select="artist"/></td>
    </tr>
    </xsl:for-each>
  </table>
  </body>
  </html>
</xsl:template>

其中<tr>保留行,<td>保留列。

来自http://www.w3schools.com/xsl/xsl_transformation.asp

的示例

您的示例表将是:

  "<table border="1">
    <tr bgcolor="#9acd32">
      <th>nombre</th>
    </tr>
    <xsl:for-each select="catalog/cd">
    <tr>
      <td><xsl:value-of select="title"/></td>
      <td><xsl:value-of select="title"/></td>
      <td><xsl:value-of select="title"/></td>
      <td><xsl:value-of select="title"/></td>
      <td><xsl:value-of select="title"/></td>
    </tr>
    </xsl:for-each>
  </table>"