如何解决如何在 XSLT 中标记使用 group-by 后删除相同的数字
我试图在标记值和另一个条目值后删除重复的数字,例如<p>1(a),(b),(c)</p>
和 <p>1(a)</p>
。如何使用 group-by 删除重复条目。
输入 XML
<root>
<p>1(a),(c)</p>
<p>1(a)</p>
<p>2(a)</p>
<p>3(a)</p>
<p>1(c)</p>
</root>
预期产出
<root>
<p>1(a)</p>
<p>1(b)</p>
<p>1(c)</p>
<p>2(a)</p>
<p>3(a)</p>
</root>
XSLT 代码
<xsl:template match="root">
<root>
<xsl:for-each-group select="p" group-by=".">
<xsl:sort select="current-grouping-key()" data-type="number" order="ascending"/>
<xsl:choose>
<xsl:when test="contains(current-grouping-key(),',')">
<xsl:variable name="tokens" select="tokenize(current-grouping-key(),and |,')"/>
<xsl:for-each select="$tokens">
<p>
<xsl:value-of
select="if (starts-with(.,'('))
then replace(head($tokens),'(.*)\(.*?\)$','$1') || .
else ."/>
</p>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<p><xsl:value-of select="current-grouping-key()"/></p>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each-group>
</root>
</xsl:template>
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。