concat在一个详细的范围内



我遇到了一个问题,我正在寻找快速修复。我有一个XML,我从中获得了一些值:

<root>
<item>
<property1>value</property1>
<property2>value</property2>
<property3>value</property3>
</item>
<item>...</item>
<item>...</item>
<item>...</item>
</root>

使用:

使用后使用一个变量
<xsl:for-each select="root/item"><xsl:value-of select="concat(property1,';')"/></xsl:for-each>

,但是当项目太多时,我遇到了一个问题(超过255个字符)。因此,我在考虑仅采用唯一值(唯一的属性值)。

有什么简单的方法吗?

谢谢

请测试下面的样式表:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    version="1.0">
<xsl:key name="group" match="property1" use="."/>
<xsl:variable name="unique_properties">
    <xsl:for-each select="//property1[count(. | key('group', .)[1]) = 1]"><!-- this selects unique values -->
        <xsl:value-of select="concat(.,';')"/>
    </xsl:for-each>
</xsl:variable>
    <xsl:template match="root">
        <xsl:value-of select="$unique_properties"/>
    </xsl:template>
</xsl:stylesheet>

相关内容

  • 没有找到相关文章

最新更新