gpt4 book ai didi

xslt - 如何在 XSLT 中使用内联条件(if then else)?

转载 作者:行者123 更新时间:2023-12-02 07:45:41 24 4
gpt4 key购买 nike

是否可以在 XSLT 中执行内联条件(如果有的话)?就像是:

<div id="{if blah then blah else that}"></div>

或者一个真实的用例/示例:
<div id="{if (@ID != '') then '@ID' else 'default'}"></div>

最佳答案

正如评论中提到的, if () then else 构造仅在 XSLT/XPpath 2.0 中受支持。

我自己的偏好是使用冗长但可读的:

<xsl:template match="some-node">
<div>
<xsl:attribute name="ID">
<xsl:choose>
<xsl:when test="string(@ID)">
<xsl:value-of select="@ID"/>
</xsl:when>
<xsl:otherwise>default</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
</div>
</xsl:template>

或者更短的:
<xsl:template match="some-node">
<div ID="{@ID}">
<xsl:if test="not(string(@ID))">
<xsl:attribute name="ID">default</xsl:attribute>
</xsl:if>
</div>
</xsl:template>

但是,如果您喜欢神秘的代码,您可能会喜欢:
<xsl:template match="some-node">
<div ID="{substring(concat('default', @ID), 1 + 7 * boolean(string(@ID)))}">
</div>
</xsl:template>

或者:
<xsl:template match="some-node">
<div ID="{concat(@ID, substring('default', 1, 7 * not(string(@ID))))}">
</div>
</xsl:template>

关于xslt - 如何在 XSLT 中使用内联条件(if then else)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30533783/

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