我在XSLT相当新手。 这里是我的XML
<contact>
<person>
<name>Hannah</name>
<phone>123-123-123</phone>
<address>No.1 A St. city</address>
<person>
<person>
<name>David</name>
<phone>223-223-223</phone>
<address>No.2 B BRC. city</address>
<person>
<person>
<name>Tim</name>
<phone>323-223-333</phone>
<address>No.3 c BRC. city</address>
<person>
<person>
<name>May</name>
<phone>443-443-443</phone>
<address>No.4 bb Rd. city</address>
<person>
<person>
<name>Rose</name>
<phone>7743-443-443</phone>
<address>No.7 rolling Rd. city</address>
<person>
..........more
<contact>
我想有输出
<div class="group">
<div class="info">
<h2>Hannah<h2/>
<h3>123-123-123</h3>
<p>No.1 A St. city<p/>
</div>
<div class="info">
<h2>David<h2/>
<h3>223-223-223</h3>
<p>No.2 B BRC. city<p/>
</div>
<div class="info">
<h2>Tim<h2/>
<h3>323-223-333</h3>
<p>No.3 c BRC. city<p/>
</div>
</div>
<div class="group">
<div class="info">
<h2>May</h2>
<h3>443-443-443</h3>
<p>No.4 bb Rd. city</p>
</div>
<div class="info">
<h2>Rose</h2>
<h3>7743-443-443</h3>
<p>No.7 rolling Rd. city</p>
</div>
..... Loop if has more
</div>
下面是我做的,但也有许多错误。 如何选择更多for-each select
?
<xsl:template name="group">
<xsl:param name="name"/>
<xsl:param name="phone"/>
<xsl:param name="address"/>
<div class="info">
<h2><xsl:value-of select="$name"/></h2>
<h3><xsl:value-of select="$phone"/></h3>
<p><xsl:value-of select="$address"/></p>
</div>
</xsl:template>
<xsl:template match="/*">
<xsl:variable name="name" select="//name"/>
<xsl:variable name="phone" select="//phone"/>
<xsl:variable name="address" select="//address"/>
<xsl:for-each select="$name">
<xsl:if test="(position() mod 4) = 1">
<xsl:variable name="position" select="position()"/>
<div class="group">
<xsl:call-template name="group">
<xsl:with-param name="name" select="."/>
<xsl:with-param name="phone" select="."/>
<xsl:with-param name="address" select="."/>
</xsl:call-template>
</div>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
如果有人能请纠正我的错误吗? 非常感谢