我想在for循环中从adviceRow元素中选择所有子节点(请参阅下面的xml数据)。
我想避免编写像这样的xslt文件:
<xsl:for-each select="Tables/routeAdviceTable/routeAdviceRows/adviceRow">
<xsl:value-of select="cog" />
<xsl:value-of select="current" />
<xsl:value-of select="distance" />
<xsl:value-of select="dtg" />
etc..
</xsl:for-each>
因为一行可以有很多单元格(我有很多相似但内容不同的表格)
我可以使用嵌套的for-each循环吗?类似的东西:
for-each advice row:
for-each child of advicerow?
<Tables>
<routeAdviceTable>
<routeAdviceRows>
<adviceRow>
<cog>313</cog>
<current>0.3</current>
<distance>58.8</distance>
<dtg>1374786000000</dtg>
<latitude>????</latitude>
<longitude>????</longitude>
<pressure>22.300001</pressure>
<sea>0.2</sea>
<sog>14.7</sog>
<stw>???</stw>
<swell>1.7</swell>
<waves>1.711724324567694</waves>
<wind>0.8</wind>
</adviceRow>
</routeAdviceRows>
</routeAdviceTable>
谢谢
答案 0 :(得分:12)
是的,你可以为每个循环嵌套。
试试这个
<xsl:for-each select="Tables/routeAdviceTable/routeAdviceRows/adviceRow">
<xsl:for-each select="./*">
<!--
Your code i.e.
<td class="{name(.)}">
<xsl:value-of select="."></xsl:value-of>
</td>
-->
</xsl:for-each>
</xsl:for-each>
xpath“。”指当前节点(a.k.a“上下文节点”),“/ *”选择上下文节点的所有子节点。