这是我xml的一部分:
<record>
<BillNum>999</BillNum>
<Item>Glasses</Item>
<Price>100</Price>
</record>
<record>
<BillNum>999</BillNum>
<Item>Book</Item>
<Price>50</Price>
</record>
<record>
<BillNum>999</BillNum>
<Item>Shoes</Item>
<Price>500</Price>
</record>
现在,我想为这个xml编写xsl,它的样式可能如下所示:
<table>
<tr>
<td>Item</td>
<td>Price</td>
</tr>
<tr>
<td>Glasses</td>
<td>100</td>
</tr>
<tr>
<td>Book</td>
<td>50</td>
</tr>
<tr>
<td>Shoes</td>
<td>500</td>
</tr>
</table>
每个BillNum。
请帮帮我,我该如何编写所需的xsl?
由于
答案 0 :(得分:1)
使用Muenchian分组http://www.jenitennison.com/xslt/grouping/muenchian.xml和密钥解决XSLT 1.0中的分组问题
<xsl:key name="bill" match="record" use="BillNum"/>
和
<xsl:template match="NameOfParentOfRecordHere">
<xsl:apply-templates select="record[generate-id() = generate-id(key('bill', BillNum)[1])]" mode="table"/>
</xsl:template>
<xsl:template match="record" mode="table">
<table>
<tr>
<td>Item</td>
<td>Price</td>
</tr>
<xsl:apply-templates select="key('bill', BillNum)"/>
</table>
</xsl:template>
<xsl:template match="record">
<tr>
<xsl:apply-templates select="Item | Price"/>
</tr>
</xsl:template>
<xsl:template match="Item | Price">
<td><xsl:value-of select="."/></td>
</xsl:template>
然后使用类似
的模板设置HTML文档结构<xsl:template match="/">
<html>
<head>
<title>Example</title>
</head>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>