现在
<xsl:for-each select="tm-reg-gaz/trademark/img">想要像这样改变。
<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">如果可以,请告诉我。谢谢。
发布于 2020-11-16 19:18:30
您可以使用select="*[name()=$tagname]/trademark/img"。
一种更好的方法可能是
<xsl:variable name="selection" select="tm-reg-gaz|mp-tm-reg-gaz">
<xsl:for-each select="$selection/trademark/img">
</xsl:for-each>(但细节取决于两个元素是否都可以出现,或者它们是否相互排斥)。
发布于 2020-11-16 17:10:06
这是我的建议,你可以随意否决它:
<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>https://stackoverflow.com/questions/64854347
复制相似问题