【问题标题】:Processing only the first occurrence of an element in XSLT仅处理 XSLT 中第一次出现的元素
【发布时间】:2013-06-24 19:20:41
【问题描述】:

我有一个类似的 xml

<A>
 <B>
    <C>90</C>
    <D>var 1</D>
 </B>
 <B>
    <C>90</C>
    <D>var 2</D>
 </B>
 <B>
    <C>90</C>
    <D>var 3</D>
 </B>
</A>

我只需要显示元素“C”的值一次(因为 xml 是由第三方生成的,并且元素“C”在 B 的每个节点中重复。不正确的方式,但我可以 什么都没有)。

现在,当我得到 C 的值(使用下面)时,它给我的值为“909090”,而我只需要“90”。怎么去??如果我能以某种方式获得列表大小然后除以长度 结果字符串的长度为子字符串。但是如何获取列表长度。

<fo:table-row>
 <fo:table-cell>
    <fo:block-container>
        <fo:block>C :: </fo:block>
    </fo:block-container>
 </fo:table-cell>
 <fo:table-cell>
    <fo:block-container>
        <fo:block>
            <xsl:apply-templates select="A/B/C"/>
        </fo:block>
    </fo:block-container>
 </fo:table-cell>
</fo:table-row>

【问题讨论】:

  • 啊,你希望只有第一个“90”......甚至很难弄清楚这个问题。

标签: xslt xslt-2.0 xsl-fo


【解决方案1】:

你总是可以使用&lt;xsl:apply-templates select="(A/B/C)[1]"/&gt; 只处理第一个C 元素。

【讨论】:

    猜你喜欢
    • 2019-10-30
    • 1970-01-01
    • 2014-04-26
    • 2016-07-20
    • 2020-10-25
    • 2015-06-15
    • 2017-03-21
    • 2020-08-08
    • 2019-01-07
    相关资源
    最近更新 更多