【问题标题】:Select distinct values from substring in XSLT从 XSLT 中的子字符串中选择不同的值
【发布时间】:2020-07-25 10:20:58
【问题描述】:

我被我的 XSL 转换困住了。我有这个 xml 代码:

             <DatoveOblasti>
                    <DataDo Kod="E.01.01.16.01"/>
                    <DataDo Kod="E.01.01.16.02"/>
                    <DataDo Kod="S.05.01.02.01"/>
                    <DataDo Kod="E.01.01.17.01"/>
                    <DataDo Kod="S.05.01.02.03"/>               
            </DatoveOblasti>

我需要这样的输出:

 <find:filingIndicator contextRef="c">E.01.01</find:filingIndicator>
 <find:filingIndicator contextRef="c">S.05.01</find:filingIndicator>

我知道如何创建子字符串输出,但我不知道如何创建不同的输出。 我试过了,但它不起作用。

<xsl:template match="DataDo">
    <find:filingIndicator contextRef="c">
        <xsl:variable name="Kod" select="substring(@Kod, 1, string-length(@Kod) - 6)" />
        <xsl:for-each select="distinct-values($Kod)"/>
    </find:filingIndicator>
</xsl:template>

【问题讨论】:

    标签: xml xslt substring distinct-values


    【解决方案1】:

    考虑以下示例:

    XML

    <DatoveOblasti>
        <DataDo Kod="E.01.01.16.01"/>
        <DataDo Kod="E.01.01.16.02"/>
        <DataDo Kod="S.05.01.02.01"/>
        <DataDo Kod="E.01.01.17.01"/>
        <DataDo Kod="S.05.01.02.03"/>               
    </DatoveOblasti>
    

    XSLT 2.0

    <xsl:stylesheet version="2.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
    <xsl:strip-space elements="*"/>
    
    <xsl:template match="DatoveOblasti">
        <output>
            <xsl:for-each select="distinct-values(DataDo/substring(@Kod, 1, 7))">
                <item>
                    <xsl:value-of select="."/>
                </item>
            </xsl:for-each>
        </output>
    </xsl:template>
    
    </xsl:stylesheet>
    

    结果:

    <?xml version="1.0" encoding="UTF-8"?>
    <output>
       <item>E.01.01</item>
       <item>S.05.01</item>
    </output>
    

    演示https://xsltfiddle.liberty-development.net/pNmC4HX

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-10
      • 1970-01-01
      • 1970-01-01
      • 2014-03-12
      • 1970-01-01
      • 2013-11-15
      • 1970-01-01
      • 2011-07-02
      相关资源
      最近更新 更多