2013-07-29 12 views
5

Chcę wybrać wszystkie węzły potomne z elementu adviceRow (zobacz dane xml poniżej) w a dla każdej pętli.Jak wybrać każdy węzeł podrzędny rodzica w oświadczeniu xslt dla każdego użytkownika?

chcę uniknąć konieczności pisania plik XSLT takiego:

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

Ponieważ rząd może mieć wiele komórek (i mam wiele podobnych, ale contentwise różnych tabel)

Mogę pracować z zagnieżdżoną dla każdej pętli? Coś jak:

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> 

Dziękuję

Odpowiedz

8

Tak, można zagnieździć for-each pętli.

Spróbuj

<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 "" odnosi się do bieżącego węzła (a.k.a "węzeł kontekstu"), "/ *" wybiera wszystkie węzły potomne węzła kontekstu.

Powiązane problemy