小编joh*_*kar的帖子

如何在XSLT中对值进行分组和求和

对于每个"代理"节点,我需要找到具有相同key1,key2,key3值的"stmt"元素,并输出一个"stmt"节点,其中"comm"和"prem"值相加在一起.对于该"代理"中的任何"stmt"元素,它们与基于key1,key2和key3的任何其他"stmt"元素都不匹配,我需要按原样输出它们.因此,在转换之后,第一个"代理"节点将只有两个"stmt"节点(一个求和),而第二个"代理"节点将按原样传递,因为密钥不匹配.XSLT 1.0或2.0解决方案是可以的......虽然我的样式表目前是1.0.请注意,代理节点可以具有任意数量的"stmt"元素,这些元素具有需要分组和求和的匹配键以及不需要的任何数字.

<statement>
<agency>
    <stmt>
        <key1>1234</key1>
        <key2>ABC</key2>
        <key3>15.000</key3>
        <comm>75.00</comm>
        <prem>100.00</prem>
    </stmt>
    <stmt>
        <key1>1234</key1>
        <key2>ABC</key2>
        <key3>15.000</key3>
        <comm>25.00</comm>
        <prem>200.00</prem>
    </stmt>
    <stmt>
        <key1>1234</key1>
        <key2>ABC</key2>
        <key3>17.50</key3>
        <comm>25.00</comm>
        <prem>100.00</prem>
    </stmt>
</agency>
<agency>
    <stmt>
        <key1>5678</key1>
        <key2>DEF</key2>
        <key3>15.000</key3>
        <comm>10.00</comm>
        <prem>20.00</prem>
    </stmt>
    <stmt>
        <key1>5678</key1>
        <key2>DEF</key2>
        <key3>17.000</key3>
        <comm>15.00</comm>
        <prem>12.00</prem>
    </stmt>
</agency>
Run Code Online (Sandbox Code Playgroud)

xslt xslt-2.0

15
推荐指数
2
解决办法
3万
查看次数

XSLT:查找字符串中的最后一次出现

给出如下表格编号:

ABC_12345_Q-10
Run Code Online (Sandbox Code Playgroud)

我想最终得到:

ABC12345
Run Code Online (Sandbox Code Playgroud)

所以我需要找到第二个下划线的位置

请注意,下划线之间的任何"部分"都没有标准模式或长度(因此我不能使用子字符串来简单地删除最后一部分).

xPath 2.0解决方案没问题.

xslt xpath xslt-2.0

8
推荐指数
3
解决办法
1万
查看次数

循环不同的价值观

给定一个使用distinct-values()函数返回不同状态列表的变量,是否有办法在for-each循环中对变量进行标记化?

<States>
<State>AL</State>
<State>AL</State>
<State>NM</State>
</States>
Run Code Online (Sandbox Code Playgroud)

以下变量返回AL和NM,但我不能使用for-each迭代它.有没有解决的办法?

<xsl:variable name="FormStates" select="distinct-values(States/State)"/>
  <xsl:for-each select="$FormStates">
Run Code Online (Sandbox Code Playgroud)

XSLT 2.0好的.

xslt xslt-2.0

6
推荐指数
1
解决办法
1万
查看次数

仅限引导空间

给定元素:

 <comments>  comments
go here
</comments>
Run Code Online (Sandbox Code Playgroud)

如何删除多个前导空格字符.我不能使用规范化空间,因为我需要保留换行符等.XSLT 2.0好的.

xslt xslt-2.0

5
推荐指数
1
解决办法
4625
查看次数

xsl:character-map替换特殊字符

给定一个值为的元素:

 <xml_element>Distrib = SU &amp; Prem &amp;lt;&amp;gt; 0</xml_element>
Run Code Online (Sandbox Code Playgroud)

我需要转入&amp;lt;&amp;gt;转入&lt;&gt; 因为下游应用程序在整个XML文档中都需要这种格式.我也需要这个用于引号和撇号.我正在尝试XSLT 2.0中的字符映射.

<xsl:character-map name="specialchar">
    <xsl:output-character character="&apos;" string="&amp;apos;" />
    <xsl:output-character character="&quot;" string="&amp;quot;" />
    <xsl:output-character character="&gt;" string="&amp;gt;" />
</xsl:character-map>
Run Code Online (Sandbox Code Playgroud)

xslt xslt-2.0

4
推荐指数
1
解决办法
8688
查看次数

标签 统计

xslt ×5

xslt-2.0 ×5

xpath ×1