2013-07-29 11 views
5

adviceRow要素(以下のxmlデータを参照)のすべての子ノードをループごとに選択します。for-each xsltステートメントで親の各子ノードを選択する方法は?

私はこのようなXSLTファイル書き込みすることを避けるためにしたい:行は、多くのセルを持つことができます(と私は似ているがcontentwise異なるテーブルの多くを持っている)ので

<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> 

はあなたに

答えて

8

はい、あなたがのために、各ループの巣ができありがとうございました。

この

<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「コンテキストノード」)を参照し、「/ *」はコンテキストノードのすべての子ノードを選択する。

関連する問題