1 回答
TA贡献1856条经验 获得超17个赞
您是否使用像萨克森 9 这样的 XSLT 2 处理器?您的 XSLT 代码显示 。如果您正在处理各种命名空间,那么在 XSLT/XPath 2 及更高版本中,一种方法是对命名空间前缀使用通配符,例如 将选择任何命名空间中的这些元素。version="2.0"**:OtherCompany/*:Changes
要参数化表达式,您需要使用 XSLT 3 处理器(如 Saxon 9.8 或 9.9)以及所谓的阴影属性(如 静态参数):select_select
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="#all"
version="3.0">
<xsl:param name="prefix" as="xs:string" static="yes" select="'/*:root/*:foo'"/>
<xsl:output indent="yes"/>
<xsl:template match="/">
<xsl:apply-templates _select="{$prefix}/*:bar"/>
</xsl:template>
<xsl:template match="*:bar">
<xsl:copy-of select="."/>
</xsl:template>
</xsl:stylesheet>
https://xsltfiddle.liberty-development.net/ej9EGco
我认为,您需要使用萨克森的s9api编程接口来设置静态参数。
添加回答
举报