如何将单行中的值分成多行,以及在xslt 3.0中删除重复项

问题描述 投票:0回答:1

输入:

<AAA>RIO_CBI_TE01_1 RIO_CBI_TE01_1 RIO_ATC_TE01_1 RIO_ATC_TE01_1 RIO_ATC_TE01_1 RIO_ATC_TE01_1 RIO_ATC_TE01_1 RIO_ATC_TE01_1 RIO_ATC_TE01_1 RIO_ATC_TE01_1 RIO_ATC_TE01_1 RIO_ATC_TE01_1 </AAA>

问题:我必须在空格后将其分成多行,并删除重复项

预期输出:

<AAA>RIO_CBI_TE01_1</AAA>
<AAA>RIO_ATC_TE01_1</AAA>
xml xslt duplicates distinct-values
1个回答
0
投票

请尝试以下解决方案。

XSLT

<?xml version="1.0"?>
<xsl:stylesheet version="3.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" indent="yes" encoding="UTF-8"/>

    <xsl:template match="/AAA">
        <root>
            <xsl:for-each select="distinct-values(tokenize(., ' '))">
                <AAA>
                    <xsl:value-of select="."/>
                </AAA>
            </xsl:for-each>
        </root>
    </xsl:template>
</xsl:stylesheet>

输出XML

<?xml version='1.0' encoding='UTF-8' ?>
<root>
  <AAA>RIO_CBI_TE01_1</AAA>
  <AAA>RIO_ATC_TE01_1</AAA>
  <AAA/>
</root>
© www.soinside.com 2019 - 2024. All rights reserved.