首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在xsl中使用select中的变量

如何在xsl中使用select中的变量
EN

Stack Overflow用户
提问于 2020-11-16 15:58:06
回答 2查看 64关注 0票数 0

现在

代码语言:javascript
复制
<xsl:for-each select="tm-reg-gaz/trademark/img">

想要像这样改变。

代码语言:javascript
复制
<xsl:variable name="tag_name">
<xsl:if test="tm-reg-gaz">tm-reg-gaz</xsl:if>
<xsl:if test="mp-tm-reg-gaz">mp-tm-reg-gaz</xsl:if>
</xsl:variable>

<xsl:for-each select="$tag_name/trademark/img">
</xsl:for-each>

我试过了

代码语言:javascript
复制
<xsl:for-each select="$tag_name/trademark/img">
<xsl:for-each select="path[$tag_name]/trademark/img">
<xsl:for-each select="{$tag_name}/trademark/img">

如果可以,请告诉我。谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-16 19:18:30

您可以使用select="*[name()=$tagname]/trademark/img"

一种更好的方法可能是

代码语言:javascript
复制
<xsl:variable name="selection" select="tm-reg-gaz|mp-tm-reg-gaz">

<xsl:for-each select="$selection/trademark/img">
</xsl:for-each>

(但细节取决于两个元素是否都可以出现,或者它们是否相互排斥)。

票数 1
EN

Stack Overflow用户

发布于 2020-11-16 17:10:06

这是我的建议,你可以随意否决它:

代码语言:javascript
复制
<xsl:variable name="variable" as="node()*">
        <xsl:choose>
            <xsl:when test="$testme = 'something'">
                <xsl:copy-of select="//tm-reg-gaz/trademark/img"/>               
            </xsl:when>
            <xsl:otherwise>
                <xsl:copy-of select="//mp-tm-reg-gaz/trademark/img"/>  
            </xsl:otherwise>
        </xsl:choose>
    </xsl:variable>        
    <xsl:for-each select="$variable">
        <!-- do something -->
    </xsl:for-each>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64854347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档