xml – XSLT – 使用嵌套for-each循环的内部循环访问外部元素
发布时间:2020-12-15 23:57:13 所属栏目:百科 来源:网络整理
导读:我是XSLT的新手,并且有一个问题需要我从内部循环中嵌套for-each的外部循环中的元素访问值.我的 XML看起来如下 searchresults journeygroup journeygroupnum1/journeygroupnum journeydetails flightsegments1/flightsegments journeyid1/journeyid currencyU
我是XSLT的新手,并且有一个问题需要我从内部循环中嵌套for-each的外部循环中的元素访问值.我的
XML看起来如下
<searchresults> <journeygroup> <journeygroupnum>1</journeygroupnum> <journeydetails> <flightsegments>1</flightsegments> <journeyid>1</journeyid> <currency>USD</currency> <fare>399.00</fare> <taxes>99.00</taxes> <flights> <segmentid>1</segmentid> <legid>1</legid> <marketingcarrier>DL</marketingcarrier> <operatingcarrier>DL</operatingcarrier> <flightnum>9695</flightnum> </flights> </journeydetails> <journeydetails> <flightsegments>1</flightsegments> <journeyid>2</journeyid> <currency>USD</currency> <fare>459.00</fare> <taxes>129.00</taxes> <flights> <segmentid>1</segmentid> <legid>1</legid> <marketingcarrier>AA</marketingcarrier> <operatingcarrier>AA</operatingcarrier> <flightnum>5070</flightnum> </flights> </journeydetails> </journeygroup> </searchresults> 我的XSLT文档的摘录如下所示 <table> <xsl:for-each select="searchresults/journeygroup/journeydetails"> <xsl:for-each select="flights[segmentid='1']"> <tr> <td><xsl:value-of select="marketingcarrier"/></td> <td><xsl:value-of select="operatingcarrier"/></td> <td><xsl:value-of select="flightnum"/></td> <!-- Here I would like to add columns with the currency and fare from the outer loop --> <td>currency</td> <td>fare</td> </tr> </xsl:for-each> </xsl:for-each> <table> 如何从内部for-each循环访问外部循环中的货币和票价节点的值.
您可以相对访问父级:
<xsl:value-of select="../currency"/> 或者使用变量捕获外部循环当前节点,然后在其中访问它: <table> <xsl:for-each select="searchresults/journeygroup/journeydetails"> <xsl:variable name="journeyDetails" select="."/> <xsl:for-each select="flights[segmentid='1']"> <tr> <td><xsl:value-of select="marketingcarrier"/></td> <td><xsl:value-of select="operatingcarrier"/></td> <td><xsl:value-of select="flightnum"/></td> <!-- Here I would like to add columns with the currency and fare from the outer loop --> <td><xsl:value-of select="$journeyDetails/currency"/></td> <td><xsl:value-of select="$journeyDetails/fare"/></td> </tr> </xsl:for-each> </xsl:for-each> </table> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |