Variables 如何在xsl中的select中使用变量
现在Variables 如何在xsl中的select中使用变量,variables,xslt,Variables,Xslt,现在 我想这样改变 <xsl:for-each select="tm-reg-gaz/trademark/img"> tm reg gaz mp tm reg gaz 我试过这些 <xsl:variable name="tag_name"> <xsl:if test="tm-reg-gaz">tm-reg-gaz</xsl:if> <xsl:if test="mp
我想这样改变
<xsl:for-each select="tm-reg-gaz/trademark/img">
tm reg gaz
mp tm reg gaz
我试过这些
<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>
如果可以,请告诉我。谢谢。这是我的建议,请随意否决:
<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">
这是我的建议,请随意否决:
<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">
您可以使用select=“*[name()=$tagname]/trademark/img”
一个更好的方法可能是
<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>
(但详细信息取决于这两个元素是否可以出现或它们是否相互排斥)。您可以使用select=“*[name()=$tagname]/trademark/img”
一个更好的方法可能是
<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>
(但细节取决于这两个元素是否可以出现,或者它们是否相互排斥)。两种解决方案都很有效。现在我使用你推荐的方法。谢谢。两种解决方案都很有效。现在我使用你推荐的方法。非常感谢。