我正在使用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的值。
任何人都可以告诉我哪里出错了吗?
答案 0 :(得分:1)
替换
<Relation ObjectID="$myId">
与
<Relation ObjectID="{$myId}">