谁能解释一下这个 XSLT 代码中发生了什么?
Can anyone please explain what is happening in this XSLT code?
我在一个项目中工作(从 datapower 到 mule 迁移)我是 XSLT 的初学者,没有任何经验。任何人都可以帮助我理解这个 xslt 文件的工作原理,以便我可以将它迁移到 mule API。
这是我的 XSLT 文件:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:dp="http://www.datapower.com/extensions"
xmlns:fin="http://schemas.zurich.com/zsoa/fig/policymanagement/2009/01/financialservicesagreement"
xmlns:par="http://schemas.zurich.com/zsoa/fig/policymanagement/2009/01/party"
xmlns:pol="http://webservices.zurich.com/zsoa/fig/policymanagement/policyinquiry-v4_0"
exclude-result-prefixes="dp" version="1.0">
<xsl:output method="xml" indent="yes" />
<xsl:variable name="plcynum" select="dp:variable('var://context/PIPE/pc')" />
<dp:set-variable name="'var://context/PIPE/LP'" value="'LEARNER'S PERMIT'" />
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
<!--<xsl:template match="ntig[descendant::term[. = '']]"/>-->
<!-- <xsl:template match="langSet[not(descendant::term[. != ''])]"/>-->
<xsl:template match="fin:basicPolicy[
descendant::fin:policyNumber[
normalize-space(.)
!= dp:variable('var://context/PIPE/pc')
]
]"/>
<!--xsl:template match="pol:houseHoldMembers[not(descendant::par:primeRole[ normalize-space(.) !='CLIENT IS A DRIVER' or normalize-space(.) !='EXCLUDED DRIVER' or normalize-space(.) != dp:variable('var://context/PIPE/LP')])]"></xsl:template-->
</xsl:stylesheet>
这是一个包含两个模板规则的样式表。第一条规则说默认操作是复制输入中的所有内容而不改变。第二条规则(因为它是空的)表示当遇到与特定模式匹配的元素时,应该删除它们。具体来说,如果 basicPolicy
元素包含满足特定条件的 policyNumber
,则应删除该元素;我不明白这些标准,因为它们是使用非标准 Datapower 扩展定义的。
我在一个项目中工作(从 datapower 到 mule 迁移)我是 XSLT 的初学者,没有任何经验。任何人都可以帮助我理解这个 xslt 文件的工作原理,以便我可以将它迁移到 mule API。 这是我的 XSLT 文件:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:dp="http://www.datapower.com/extensions"
xmlns:fin="http://schemas.zurich.com/zsoa/fig/policymanagement/2009/01/financialservicesagreement"
xmlns:par="http://schemas.zurich.com/zsoa/fig/policymanagement/2009/01/party"
xmlns:pol="http://webservices.zurich.com/zsoa/fig/policymanagement/policyinquiry-v4_0"
exclude-result-prefixes="dp" version="1.0">
<xsl:output method="xml" indent="yes" />
<xsl:variable name="plcynum" select="dp:variable('var://context/PIPE/pc')" />
<dp:set-variable name="'var://context/PIPE/LP'" value="'LEARNER'S PERMIT'" />
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
<!--<xsl:template match="ntig[descendant::term[. = '']]"/>-->
<!-- <xsl:template match="langSet[not(descendant::term[. != ''])]"/>-->
<xsl:template match="fin:basicPolicy[
descendant::fin:policyNumber[
normalize-space(.)
!= dp:variable('var://context/PIPE/pc')
]
]"/>
<!--xsl:template match="pol:houseHoldMembers[not(descendant::par:primeRole[ normalize-space(.) !='CLIENT IS A DRIVER' or normalize-space(.) !='EXCLUDED DRIVER' or normalize-space(.) != dp:variable('var://context/PIPE/LP')])]"></xsl:template-->
</xsl:stylesheet>
这是一个包含两个模板规则的样式表。第一条规则说默认操作是复制输入中的所有内容而不改变。第二条规则(因为它是空的)表示当遇到与特定模式匹配的元素时,应该删除它们。具体来说,如果 basicPolicy
元素包含满足特定条件的 policyNumber
,则应删除该元素;我不明白这些标准,因为它们是使用非标准 Datapower 扩展定义的。