Xml xslt中的动态谓词

Xml xslt中的动态谓词,xml,xslt-1.0,Xml,Xslt 1.0,通过谓词匹配,基于另一个父级@refID选择多个运输组。 例如: 我的逻辑是通过下面的条件来满足所有的传输 IF @refID=="masterbill" else IF @refID=="trasportUnit" get only <transportation @refid="transportUnit">. 如果@refID==“主账单” 如果@refID==“trasportUnit”,则为else 只得

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


我的逻辑是通过下面的条件来满足所有的传输

IF @refID=="masterbill" 
else IF @refID=="trasportUnit" 
get only <transportation @refid="transportUnit">.
如果@refID==“主账单”
如果@refID==“trasportUnit”,则为else
只得到。
我试着像下面这样做,但我在“*”部分有一个错误


尝试以下方法:

<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]">

运输单位
<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]">