我想在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>
谢谢
是的,你可以为每个循环嵌套.
试试这个
<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“.”指的是当前节点(也就是“上下文节点”),“/ *”选择上下文节点的所有子节点.