如何使用XSLT为xml(自关闭元素)中的空元素标记赋值
您好,如何在下面的xml中转换下面的空元素标记如何使用XSLT为xml(自关闭元素)中的空元素标记赋值,xml,xslt,Xml,Xslt,您好,如何在下面的xml中转换下面的空元素标记 <LIST_R7P1_1> <R7P1_1> <ORIG_EXP_PRE_CONV /> <EXP_AFT_CONV /> <GUARANTEE_AMOUNT /> <CREDIT_DER /> </R7P1_1> </LIST_R7P1_1> 使用xslt转换为以下格式 <LIST_R7P1_1>
<LIST_R7P1_1>
<R7P1_1>
<ORIG_EXP_PRE_CONV />
<EXP_AFT_CONV />
<GUARANTEE_AMOUNT />
<CREDIT_DER />
</R7P1_1>
</LIST_R7P1_1>
使用xslt转换为以下格式
<LIST_R7P1_1>
<R7P1_1>
<ORIG_EXP_PRE_CONV >0<ORIG_EXP_PRE_CONV />
<EXP_AFT_CONV >0<EXP_AFT_CONV />
<GUARANTEE_AMOUNT >0<GUARANTEE_AMOUNT />
<CREDIT_DER >0<CREDIT_DER />
</R7P1_1>
</LIST_R7P1_1>
0
0
0
0
由于您没有发布任何自己的代码(即您已经尝试过的代码),我将告诉您如何在不提供代码的情况下解决此问题:Google“XSL identity transform”,然后为要更改的标记添加一些特定模板。在添加文本子节点时,特定模板需要“复制”输入节点及其属性。此样式表:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*[not(node())]">
<xsl:copy>0</xsl:copy>
</xsl:template>
</xsl:stylesheet>
结果:
0
@用户429727:从概念上讲,此
与此
的含义相同。是否希望这两种空元素都转换为0
?是的,实际上我正在添加一些元素,sum是元素集合中的空元素,我在sum中获取空值。我在想,如果我把元素的和转换为0,那么得到元素的和就很容易了。实际上,我正在添加一些元素,和是元素集合中的空元素,我在和中得到空值。我在想,如果我把这个值转换成0,那么得到元素的和对我来说就很容易了。如果您知道任何其他流程,请与我分享
<LIST_R7P1_1>
<R7P1_1>
<ORIG_EXP_PRE_CONV>0</ORIG_EXP_PRE_CONV>
<EXP_AFT_CONV>0</EXP_AFT_CONV>
<GUARANTEE_AMOUNT>0</GUARANTEE_AMOUNT>
<CREDIT_DER>0</CREDIT_DER>
</R7P1_1>
</LIST_R7P1_1>
sum(/LIST_R7P1_1/R7P1_1/*/text())
0