gpt4 book ai didi

xml - XSLT 属性字符串测试

转载 作者:行者123 更新时间:2023-11-28 20:10:35 24 4
gpt4 key购买 nike

我正在编辑一些现有的 XSLT,因此我可以更改内容的显示以显示在选项卡中。我使用了其中一个字符串变量来为单个样式分配一个 div id。我现在正在尝试为第一个选项卡的名称测试新的 id 属性,然后为该选项卡将样式设置为 display:block。我知道 WHEN 条件正在处理,因为正在将样式应用于 div,但这都是 display:none

我不是特别擅长 XSLT(陡峭的学习曲线),但除了后一点之外我什么都可以用,我认为这只是因为我不知道正确的语法。这是我正在使用的 block 。显示整个 div block ,但重要的是前十几行:

  <div class="container">
<xsl:attribute name="id">
<xsl:value-of select="substring($tmpTitle, 1, 5)"/>
</xsl:attribute>
<xsl:choose>
<xsl:when test="@id='First'">
<xsl:attribute name="style">display:block</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="style">display:none</xsl:attribute>
</xsl:otherwise>
</xsl:choose>

<li>

<h2>
<xsl:value-of select="$tmpTitle"/>
</h2>

<xsl:if test="$listType != ''">
<a class="guidelinesLink">
<xsl:attribute name="href">
<xsl:apply-templates select="link"/>
</xsl:attribute>
<xsl:value-of select="link/url-text"/>
</a>
</xsl:if>


<ul class="itemList">
<xsl:apply-templates select="//item[../title = $tmpTitle or ../title-ddl = $tmpTitle]">
<xsl:sort select="title"/>
</xsl:apply-templates>
</ul>

</li>
</div>

最佳答案

您正在转换的 XML 没有 @id谁的值(value)等于First , 所以 test="@id='First'"永远是错误的,并且会下降到 xsl:otherwise .

相反,绑定(bind)您用来创建 @id 的值到一个变量并使用该变量来创建 @id属性并确定分配给 @style 的值.

此外,如果您总是要创建 @style属性,那么你可以移动 xsl:choosexsl:attribute里面并且只声明一次:

<div class="container">
<xsl:variable name="identifier" select="substring($tmpTitle, 1, 5)"/>
<xsl:attribute name="id">
<xsl:value-of select="$identifier"/>
</xsl:attribute>
<xsl:attribute name="style">
<xsl:text>display:</xsl:text>
<xsl:choose>
<xsl:when test="$identifier='First'">
<xsl:text>block</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>none</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>

关于xml - XSLT 属性字符串测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52266037/

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