我的 XML 源代码如下所示:
<query>
<Rows>
<Row ID="1" name="person1" title="p1package1" />
<Row ID="2" name="person1" title="p1package2" />
<Row ID="3" name="person2" title="p2package1" />
</Rows>
</query>
我想用这样的 XSL 创建一个输出:
<table>
<tr>
<td>person1</td>
<td>p1package1, p1package2</td>
</tr>
<tr>
<td>person2</td>
<td>p2package1</td>
</tr>
</table>
我尝试使用以下 XSL 样式表,但第一个之前的打开似乎会导致结构无效,因此页面无法加载。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output version="1.0" indent="yes" encoding="UTF-8" method="xml" />
<xsl:template match='query'>
<table>
<xsl:for-each select="Rows/Row" >
<xsl:if test="preceding-sibling::Row/@name != @name or position() = 1">
<tr>
<td><xsl:value-of select="@name" /></td>
<td>
</xsl:if>
<xsl:value-of select="@title" />
<xsl:if test="not(following-sibling::Row/@name = @name)">
</td>
</tr>
</xsl:if>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
我怎么能接近这个?我知道 XML 的结构不是很好,但我对数据源没有影响。