gpt4 book ai didi

xml - XSLT 属性 when 和 if 之间有什么区别

转载 作者:数据小太阳 更新时间:2023-10-29 01:40:14 28 4
gpt4 key购买 nike

下面给出的两个代码有什么区别?两个代码都检查标签中是否存在属性:

<xsl:choose>
<xsl:when test="string-length(DBE:Attribute[@name='s0SelectedSite']/node()) &gt; 0">
<table>
...
</table>
</xsl:when>
<xsl:otherwise>
<table>
...
</table>
</xsl:otherwise>
</xsl:choose>

<xsl:if test="@Col1-AllocValue"> 
<xsl:copy-of select="@Col1-AllocValue"/>
</xsl:if>

最佳答案

选择的结构是

<xsl:choose>
<xsl:when test="a">A</xsl:when>
<xsl:when test="b">B</xsl:when>
<xsl:when test="c">C</xsl:when>
<xsl:when test="...">...</xsl:when>
<xsl:otherwise>Z</xsl:otherwise>
</xsl:choose>

它允许对评估为 true 的第一个测试执行多项检查和一个操作。 xsl:otherwise 用于在没有任何检查的计算结果为 true 时执行默认操作;特别是这有助于 if-then-else 构造(只有一个 xsl:when 替代方案加上一个 xsl:otherwise block )。

令我震惊的是 xsl:if 不允许使用 xsl:else 替代方案,但它在 xsl:choose 中可用> construct,估计是判断不加了。也许下一个 XSLT 版本会包含一个 xsl:else

对于其余部分,xsl:whenxsl:if 中的测试做完全相同的事情:检查条件。

注意xsl:if的结构很简单

<xsl:if test="a">A</xsl:if>

单例

<xsl:when test="a">A</xsl:when>

将无效:xsl:when 元素总是 xsl:choose 的子元素。并且 xsl:choose 可能只有子级 xsl:whenxsl:otherwise

关于xml - XSLT 属性 when 和 if 之间有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10189250/

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