我是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>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。