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編程接口來設置靜態參數。
添加回答
舉報
