use*_*869 4 xslt foreach xslt-2.0
是否可以在属性上使用命令?我希望能够在不知道属性名称的情况下运行.这是一个快速(可怕)的例子:
<candy hard="true" soft="false" stripes="true" solid="false">
Run Code Online (Sandbox Code Playgroud)
在我的脑海里(这不起作用)它应该看起来像这样:
<xsl:for-each select="candy/@[@='true']">
Run Code Online (Sandbox Code Playgroud)
有没有办法在不知道名字的情况下运行属性,或者我是否需要编写正在查看的每个属性?
编辑
下面是我尝试从属性名称中创建变量的示例,其中value ='true'
<xsl:for-each select="candy/@*[. = 'true']">
<xsl:attribute name="candytype">
<xsl:value-of select="name()"/>
</xsl:attribute>
<xsl:text> </xsl:text>
<xsl:for-each>
Run Code Online (Sandbox Code Playgroud)
OP的评论:
我可以返回其值='true'的每个属性名称(而非值)吗?
<xsl:for-each select="candy/@*[. = 'true']">
<xsl:value-of select="name()"/>
<xsl:text> </xsl:text>
<xsl:for-each>
Run Code Online (Sandbox Code Playgroud)
在XSLT 2.0中,只需评估此XPath(2.0)表达式:
candy/@*[. = 'true']/concat(name(.), ' ')
Run Code Online (Sandbox Code Playgroud)