gpt4 book ai didi

xslt 联合优先级值

转载 作者:行者123 更新时间:2023-12-03 16:00:06 24 4
gpt4 key购买 nike

我正尝试在 XSLT 1.0 中设置一个变量,如下所示

 <xsl:variable name="by" select="Contributors/Contributor[Role='ReMixer']/Name | Attribution" />

想法是,如果 Remixer Role 不存在,那么变量将采用 Attribution 的值,但是在测试时,无论如何它总是采用 Attribution 的值。

知道为什么会发生这种情况以及解决方案吗?

更新 1

这就是我目前的工作

<xsl:variable name="Remixer" select="Contributors/Contributor[Role='ReMixer']/Name" />
<xsl:variable name="by">
<xsl:choose>
<xsl:when test="$Remixer = ''">
<xsl:value-of select="Attribution"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$Remixer"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>

有没有更短的方法来达到相同的结果?

下面是xml文档的副本

<track>
<attribution>Various Artists</attribution>
<contributors>
<contributor primary="true">
<role>Recording Artist</role>
<name country="" birth-deathyear="" part3="Cosmic Gate" part2="" part1="">Cosmic Gate</name>
</contributor>
<contributor primary="true">
<role>ReMixer</role>
<name country="" birth-deathyear="" part3="Gary Gee" part2="" part1="">Gary Gee</name>
</contributor>
</contributors>
</track>

谢谢

山姆

最佳答案

使用这个成语的正确方法是:

       $n1[$condition] | $n2[not($condition)]

选择节点$n1当且仅当$conditiontrue ()并选择$n2当且仅当$conditionfalse()

因此,在您的情况下,这将是:

       Contributors/Contributor[Role='ReMixer']/Name
|
Attribution[not(../Contributors/Contributor[Role='ReMixer'])]

关于xslt 联合优先级值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3707362/

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