0

我正在一个执行一些 xslt 转换的 java 应用程序中工作。我想使用 java 提供的参数将节点匹配到 xslt 文档中。这是执行以下操作的正确方法:

<xsl:template match="//m:properties/*[contains($pattern,name())]"> 

因为当我启动我的应用程序时,它声称它无法编译样式表,因为没有定义模式,但我使用 setParameter 方法设置它,并且我能够使用以相同方式但在不同上下文中定义的另一个参数. 提前感谢菲尔

4

1 回答 1

1

你需要一个

<xsl:param name="pattern" />

在您的样式表中声明参数,setParameter调用本身是不够的。然而,还有一个问题是,根据 XSLT 1.0 规范,匹配表达式不允许包含变量/参数引用,例如$pattern. 一些处理器确实允许它们(至少包括某些版本的 Xalan),但如果它不起作用,那么您需要更改匹配逻辑,例如通过定义要匹配的模板//m:properties/*但然后只调用apply-templates与您的模式匹配的那些元素.

于 2012-10-30T17:02:08.610 回答