条件测试(!="")在select-value内

时间:2016-05-07 06:23:02

标签: xslt

上下文:我正在迭代一个变量列表($ tagList),它实际上是一个固定列表(无法避免)。在此节点集内初始化变量'属性'然后在动态xpath中使用(xalan:evaluate)。我需要包含一个额外的条件检查,以便只映射特定元素!="" (例如vTag列表中的 pos 元素)。不清楚如何将当前的xalan:evaluate(concat(.....))函数与!=""检查。

XSL片段如下(请忽略'拼凑的CDATA块,这是生成第三方消费者所需的固定位置文本格式所必需的。)

<xsl:variable name="tagList">
  <vtag name="Group0100" key="name"></vtag>
  <vtag name="Group0200" key="age"></vtag>
  <vtag name="Group0300" key="dept"></vtag>
  <vtag name="Group0400" key="pos"></vtag>              
</xsl:variable>

<xsl:template match="/">
 <xsl:for-each select="Extract">
 <xsl:variable name="ExtractView" select="."/>
 <xsl:for-each select="xalan:nodeset($tagList)/vtag">
   <xsl:variable name="ExtractViewTemp" select="$ExtractView"/>
   <xsl:variable name="attribute" select="./@key"/>
     <xsl:text><![CDATA[<Record type="insert">]]></xsl:text><xsl:value-of select="$br" />
    <xsl:text>  <![CDATA[<Column name="term_group_name">]]></xsl:text>
               <xsl:value-of select="xalan:evaluate(concat('$ExtractViewTemp/', $attribute))"/><![CDATA[</Column>]]><xsl:value-of select="$br" />

0 个答案:

没有答案