我的有什么问题吗?
我有一个 xsl:param
,我试图用它来对属性进行模板匹配。根据我在这里和互联网上找到的所有内容,我的做法是正确的。但是,我的输出是空白的。
这是我的 xslt
<xsl:param name="strm_name">main</xsl:param>
<xsl:template match="stream[@name='{$strm_name}']"></xsl:template>
如果我将参数调用硬编码为“main”,则效果很好。
这是我试图匹配的 XML 标签..
<doc><stream name="main"></stream></doc>
非常感谢任何帮助!
I have an xsl:param
that I'm trying to use to do a template match on an attribute. By everything I've found here and on the Internet, I'm doing this correctly. However, my output is blank.
Here is my xslt
<xsl:param name="strm_name">main</xsl:param>
<xsl:template match="stream[@name='{$strm_name}']"></xsl:template>
If I hardcode the param call to "main", this works just fine.
Here is the XML tag I'm trying to match to..
<doc><stream name="main"></stream></doc>
Any help is much appreciated!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我看到两个问题:
'{...}'
。 (您可能会将其与属性值模板混淆。)请改用:stream[@name=$strm_name]
问题 #1 的一个可能的解决方法是仅选择那些满足条件的元素由你的参数控制。 (您可以在选择表达式中引用参数)。
例如,此样式表:
应用到此文档:
...仅匹配所需的节点。输出:
I see two issues:
'{...}'
when referencing your parameter in the predicate. (You're probably confusing this with an Attribute Value Template.) Use this instead:stream[@name=$strm_name]
A possible workaround for issue #1 is to select only those elements that meet the criteria controlled by your param. (You can reference a param in a select expression).
For example, this stylesheet:
Applied to this document:
...matches only the desired nodes. Output: