上下文:我正在迭代一个变量列表($ 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" />