gpt4 book ai didi

java - 如何根据 xslt 中的特定值检查所有列表节点字段?

转载 作者:行者123 更新时间:2023-12-01 19:33:27 25 4
gpt4 key购买 nike

https://xsltfiddle.liberty-development.net/94AbWB6/2

在此示例中,我尝试匹配 <persons>列出谁 <person>.<lastname>与该列表中的所有其他人不匹配。

<root>
<persons>
<person>
<lastname>doe</lastname>
</person>
<person>
<lastname>done</lastname>
</person>
</persons>
<persons>
<person>
<lastname>name</lastname>
</person>
<person>
<lastname>name</lastname>
</person>
</persons>
</root>

在第二个列表中,<lastname>name</lastname>总是相等的。但在第一个列表中,姓氏不同。所以我期望以下 xslt会输出doe 。但事实并非如此:

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

<xsl:template match="/root">
<xsl:for-each select="persons">
<xsl:variable name="lastname" select="person[1]/lastname"/>
<xsl:if test="not(person/lastname = $lastname)">
<xsl:text>lastnames should be the same: </xsl:text>
<xsl:value-of select="$lastname"/>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

旁注:我不想检测到底哪个人有不同的姓氏。我只想查明人员列表中是否有任何人有不同的情况。

所以问题也可以改写为:如何提取所有 <lastname>作为Set并检查是否 set.size != 1

最佳答案

听起来 count(distinct-values(person/lastname)) = 1 在改写中表达了您的条件。

关于java - 如何根据 xslt 中的特定值检查所有列表节点字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58711697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com