在XSLT中为某些节点执行for-each

时间:2014-04-02 07:56:06

标签: xml xslt foreach

大家好我这里有问题,对XSLT来说是全新的,这让我有点疯狂,因为我不熟悉语法,但逻辑看起来很简单。

所以我有一个xml的格式:

<A>
  <B>
    <C>value1</C>
    <D>amount1</D>
  </B>
</A>
<A>
  <B>
    <C>value2</C>
    <D>amount2</D>
  </B>
</A>

在这种情况下,我想为每个循环执行a,该循环只返回A / B的每个节点C的值,当节点D是某个值时。例如,你可以说

for-each A / B,return c,其中d =“amount1”

任何人都可以帮助解决XSLT的问题吗?

2 个答案:

答案 0 :(得分:2)

试试这个......

<xsl:for-each select="A/B[D='amount1']">
     <xsl:value-of select="C" />
</xsl:for-each>

注意,这假设您当前位于所有 A 元素的父元素上。

答案 1 :(得分:0)

或者,您可以跳过xsl:for-each并使用

<xsl:copy-of select="root/A/B[D[.='amount1']]/C"/>

我在您的输入中添加了root标记用于测试。