我遇到了一个问题,我正在寻找快速修复。我有一个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>