【问题标题】:Doing a for-each in XSLT for certain nodes在 XSLT 中为某些节点执行 for-each
【发布时间】:2014-04-02 07:56:05
【问题描述】:

大家好,我有一个问题,我对 XSLT 完全陌生,这让我有点抓狂,因为我不熟悉语法,但逻辑似乎很简单。

所以我有一个 xml 格式:

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

在这种情况下,我想做一个 for each 循环,仅当节点 D 是某个值时才返回 A/B 的每个节点 C 的值。例如,你可以说

对于每个 A/B,返回 c,其中 d = "amount1"

有人帮忙看看 XSLT 的用途吗?

【问题讨论】:

    标签: xml xslt foreach


    【解决方案1】:

    试试这个...

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

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

    【讨论】:

      【解决方案2】:

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

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

      我在您的输入中添加了一个root 标记以进行测试。

      【讨论】:

      • 我使用copy-of而不是value-of,以防有很多匹配项
      猜你喜欢
      • 1970-01-01
      • 2018-08-30
      • 2015-01-25
      • 2021-05-26
      • 1970-01-01
      • 1970-01-01
      • 2020-08-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多