xslt中的动态谓词



通过谓词匹配,基于另一个parent@refID选择多个运输组。示例:

<parent refid="masterbill"/>
<transportation refid="housebill">
</transportation>
<transportation refid="transportUnit">
</transportation>
<transportation refid="masterbill">
</transportation>

我的逻辑是通过下面的条件来满足get ALL运输

IF @refID=="masterbill" 
else IF @refID=="trasportUnit" 
get only <transportation @refid="transportUnit">.

我试着像下面这样做,但我在"*"部分

<xsl:if test="@refID=="masterbill">
<xsl:variable name='match' select="'*'"/>
</xsl:if>
<xsl:if test="@refID=="transportUnit">
<xsl:variable name='match' select="'transportUnit'"/>
</xsl:if>
<for-each select="transportation[@refID=$match]">

尝试以下操作:

<xsl:variable name='match'>
<xsl:if test="@refID=="masterbill">*</xsl:if>
<xsl:if test="@refID=="transportUnit">transportUnit</xsl:if>
</xsl:variable>
<xsl:for-each select="transportation[$match='*' or @refID=$match]">

最新更新