2015-06-24 72 views
0

这里有点问题。我想打印一个属性节点的值,但在xsl:value-of的select中有一个concat。在select中带有concat的属性节点的值

就像那个(我已经在目标节点):

<xsl:value-of select="concat('@', $categories)"/> 

但是,当我试图做这种方式,它只是打印我的concat方法的结果。

感谢您的帮助。

回答

1

您不能构建像这样的动态XPath表达式,但在这种情况下,您不需要。如果你想其包含在categories变量属性的值,那么就可以实现与

<xsl:value-of select="@*[name() = $categories]"/> 
+0

感谢队友!它完美的工作,你能解释我为什么我不能做我试过的吗?你的代码在做什么? – Toodoo

+1

@Toodoo在你的例子中'value-of'评估'concat'表达式,它返回一个字符串,返回它必须采用的强属性值,将它编译为一个表达式,然后再评估一次。我的代码提取当前元素('@ *')上所有属性节点的集合,然后使用_predicate_过滤设置以找到名称正确的节点。如果没有该名称的属性,则过滤的结果将是空集,其“value-of”是空字符串。 –