xslt无法为节点赋值

时间:2013-11-21 07:34:35

标签: xslt

我正在使用xslt创建一个xml 这里的代码片段为

 <xsl:for-each select="/PAYMENTS/PAYMENT">
   <xsl:if test="./PAYMENT_TYPE = 'CEDING'">
     <xsl:if test="./FIRST_NAME[ . != '']">
        <xsl:variable name="myId" select="concat('Payment', position())"/>
            <Relation ObjectID="string(concat('Payment', position()))">
                <xsl:attribute name="id">
                <xsl:value-of select="concat('Payment',position())"/>
                </xsl:attribute>
            </Relation>
    </xsl:if>
  </xsl:if>
</xsl:for-each>

此外,我尝试使用与

相同的代码
<xsl:for-each select="/PAYMENTS/PAYMENT">
   <xsl:if test="./PAYMENT_TYPE = 'CEDING'">
     <xsl:if test="./FIRST_NAME[ . != '']">
        <xsl:variable name="myId" select="concat('Payment', position())"/>
            <Relation ObjectID="$myId">
                <xsl:attribute name="id">
                <xsl:value-of select="concat('Payment',position())"/>
                </xsl:attribute>
            </Relation>
    </xsl:if>
  </xsl:if>

在两种情况下,我得到的结果xml节点为

 <Relation OriginatingObjectID="string(concat('Payment', position()))" id="Payment1">
</Relation>

 <Relation OriginatingObjectID="$myId" id="Payment1">
</Relation>

这是它无法转换Relation Node的ObjectID的值。

任何人都可以告诉我哪里出错了吗?

1 个答案:

答案 0 :(得分:1)

替换

<Relation ObjectID="$myId">

<Relation ObjectID="{$myId}">