Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xslt 您能使用<;xsl:for each>;检查属性?_Xslt_Foreach_Xslt 2.0 - Fatal编程技术网

Xslt 您能使用<;xsl:for each>;检查属性?

Xslt 您能使用<;xsl:for each>;检查属性?,xslt,foreach,xslt-2.0,Xslt,Foreach,Xslt 2.0,是否可以对属性使用命令?我希望它能够在不知道属性名称的情况下运行。下面是一个快速(糟糕)的例子: 在我的脑海中(这不起作用)应该是这样的: <xsl:for-each select="candy/@[@='true']"> 有没有一种方法可以在不知道属性名称的情况下运行属性,或者我需要编写每个正在查看的属性 编辑 下面是一个我试图从属性名创建变量的示例,其中value='true' <xsl:for-each select="candy/@*[. = 'true']"

是否可以对属性使用命令?我希望它能够在不知道属性名称的情况下运行。下面是一个快速(糟糕)的例子:


在我的脑海中(这不起作用)应该是这样的:

<xsl:for-each select="candy/@[@='true']">

有没有一种方法可以在不知道属性名称的情况下运行属性,或者我需要编写每个正在查看的属性

编辑

下面是一个我试图从属性名创建变量的示例,其中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>

您想要的是

<xsl:for-each select="candy/@*">

OP的评论:

我是否可以返回其值为true的每个属性名(不是值)


酷。。我是否可以返回其值为true的每个属性名(不是值)?如下所示:?@user673869:要选择值为true的属性节点,请选择
select=“candy/@*[.='true']”
。选择或返回他们的姓名是一个较长的答案。。。请参阅Dimitre的答案。Dimitre-是否可以用属性名创建变量而不是显示它?我尝试过这样做,但没有效果…@user673869:是的,这个变量包含一系列字符串,每个字符串都是一个属性的名称:
Dimitre-我相信您的代码是为XSLT 2.0编写的。你能为1.0写一个例子吗?另外,你给了我这个网站,作为我之前一个问题的一个很好的参考工具:。有没有其他更好的方法来解释我想要实现的目标?谢谢@user673869:您将问题标记为“xslt-2.0”。如果这是错误的,请删除此标记并将其标记为“xslt-1.0”@user673869:在xslt 1.0中,只需将
xsl:for each
放在
xsl:variable
的主体内。
<xsl:for-each select="candy/@*">
<xsl:for-each select="candy/@*[. = 'true']">
   <xsl:value-of select="name()"/>
   <xsl:text> </xsl:text>
<xsl:for-each>
candy/@*[. = 'true']/concat(name(.), ' ')