xslt将空节点替换为0

时间:2017-11-03 03:10:15

标签: xslt

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text" indent="yes"/>
    <xsl:variable name="dt">
        <xsl:text>|</xsl:text>
    </xsl:variable>    
    <xsl:variable name="nl">
        <xsl:text>&#xD;&#xA;</xsl:text>
    </xsl:variable>
    <xsl:template match="/">
        <xsl:for-each select="INVOIC02/IDOC/E1EDP01">
            <!--check_MENGE_Value-->
            <xsl:if test="MENGE != '0'">
                <xsl:value-of select="$dt"/>
                <xsl:for-each select="E1EDP26">
                    <xsl:choose>
                        <xsl:when test="QUALF='003'">
                            <xsl:value-of select="BETRG"/>
                        </xsl:when>
                        <xsl:otherwise>0</xsl:otherwise>
                    </xsl:choose>
                </xsl:for-each>
                <xsl:value-of select="$dt"/>                    
                <xsl:value-of select="$nl"/>    
            </xsl:if>           
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>

嘿伙计们,我有这个xslt示例代码,如果是段E1EDP26-BETRG, QUALF = 003存在,获取值BETRG,否则替换为值0.

  

我的实际输出:

     

| 01203.0000000000 |

     

| 000000000 |

     

| 03376.5000000000 |

但我期待这个结果:

| 1203.00 |

| 0 |

| 3376.50 |

任何人都知道为什么它会在输出结果中添加9位零数字? 我的输入xml太长了(900行),因此我只是分享了与主题相关的部分内容。

<?xml version="1.0" encoding="UTF-8" ?>
<INVOIC02>
    <IDOC BEGIN="1">
        <EDI_DC40 SEGMENT="1">
        </EDI_DC40>
        <E1EDP01 SEGMENT="1">
            <POSEX>000010</POSEX>
            <MENGE>0</MENGE>
            <GEWEI>KGM</GEWEI>
            <PSTYV>ZTAN</PSTYV>
            <WERKS>SG01</WERKS>
            <E1EDP02 SEGMENT="1">
                <QUALF>001</QUALF>
                <BELNR>PO-SGH111890</BELNR>
                <DATUM>20171025</DATUM>
            </E1EDP02>
            <E1EDP02 SEGMENT="1">
                <QUALF>002</QUALF>
                <BELNR>1800025089</BELNR>
                <ZEILE>000010</ZEILE>
                <DATUM>20171025</DATUM>
            </E1EDP02>
            <E1EDP02 SEGMENT="1">
                <QUALF>016</QUALF>
                <BELNR>0001012872</BELNR>
                <ZEILE>000010</ZEILE>
                <DATUM>20171026</DATUM>
            </E1EDP02>
            <E1EDP03 SEGMENT="1">
                <IDDAT>029</IDDAT>
                <DATUM>20171025</DATUM>
            </E1EDP03>
            <E1EDP03 SEGMENT="1">
                <IDDAT>045</IDDAT>
                <DATUM>00000000</DATUM>
            </E1EDP03>
            <E1EDP03 SEGMENT="1">
                <IDDAT>001</IDDAT>
                <DATUM>20171026</DATUM>
            </E1EDP03>
            <E1EDP03 SEGMENT="1">
                <IDDAT>011</IDDAT>
                <DATUM>20171025</DATUM>
            </E1EDP03>
            <E1EDP03 SEGMENT="1">
                <IDDAT>025</IDDAT>
                <DATUM>20171025</DATUM>
            </E1EDP03>
            <E1EDP03 SEGMENT="1">
                <IDDAT>027</IDDAT>
                <DATUM>20171025</DATUM>
            </E1EDP03>
            <E1EDP03 SEGMENT="1">
                <IDDAT>023</IDDAT>
                <DATUM>20171025</DATUM>
            </E1EDP03>
            <E1EDP03 SEGMENT="1">
                <IDDAT>022</IDDAT>
                <DATUM>20171025</DATUM>
            </E1EDP03>
            <E1EDP19 SEGMENT="1">
                <QUALF>001</QUALF>
                <IDTNR>CM-ZZ104</IDTNR>
            </E1EDP19>
            <E1EDP19 SEGMENT="1">
                <QUALF>002</QUALF>
                <IDTNR>000000000003617866</IDTNR>
                <KTEXT>COMPOUND SODIUM LACTATE EP500 BMI/SIN</KTEXT>
            </E1EDP19>
            <E1EDP19 SEGMENT="1">
                <QUALF>901</QUALF>
                <IDTNR>3617866</IDTNR>
                <KTEXT>COMPOUND SODIUM LACTATE EP500 BMI/SIN</KTEXT>
            </E1EDP19>
            <E1EDP19 SEGMENT="1">
                <QUALF>003</QUALF>
                <IDTNR>4030539908863</IDTNR>
            </E1EDP19>
            <E1EDP26 SEGMENT="1">
                <QUALF>001</QUALF>
                <BETRG>0</BETRG>
            </E1EDP26>
            <E1EDP26 SEGMENT="1">
                <QUALF>002</QUALF>
                <BETRG>0</BETRG>
            </E1EDP26>
        </E1EDP01>
        <E1EDP01 SEGMENT="1">
            <POSEX>000020</POSEX>
            <MENGE>3.000</MENGE>
            <MENEE>PCE</MENEE>
            <NTGEW>1.800</NTGEW>
            <GEWEI>KGM</GEWEI>
            <BRGEW>1.800</BRGEW>
            <PSTYV>ZTAN</PSTYV>
            <WERKS>SG01</WERKS>
            <E1EDP02 SEGMENT="1">
                <QUALF>001</QUALF>
                <BELNR>PO-SGH111890</BELNR>
                <DATUM>20171025</DATUM>
            </E1EDP02>
            <E1EDP02 SEGMENT="1">
                <QUALF>002</QUALF>
                <BELNR>1800025089</BELNR>
                <ZEILE>000010</ZEILE>
                <DATUM>20171025</DATUM>
            </E1EDP02>
            <E1EDP02 SEGMENT="1">
                <QUALF>016</QUALF>
                <BELNR>0001012872</BELNR>
                <ZEILE>900001</ZEILE>
                <DATUM>20171026</DATUM>
            </E1EDP02>
            <E1EDP03 SEGMENT="1">
                <IDDAT>029</IDDAT>
                <DATUM>20171025</DATUM>
            </E1EDP03>
            <E1EDP03 SEGMENT="1">
                <IDDAT>045</IDDAT>
                <DATUM>20190430</DATUM>
            </E1EDP03>
            <E1EDP03 SEGMENT="1">
                <IDDAT>001</IDDAT>
                <DATUM>20171026</DATUM>
            </E1EDP03>
            <E1EDP03 SEGMENT="1">
                <IDDAT>011</IDDAT>
                <DATUM>20171025</DATUM>
            </E1EDP03>
            <E1EDP03 SEGMENT="1">
                <IDDAT>025</IDDAT>
                <DATUM>20171025</DATUM>
            </E1EDP03>
            <E1EDP03 SEGMENT="1">
                <IDDAT>027</IDDAT>
                <DATUM>20171025</DATUM>
            </E1EDP03>
            <E1EDP03 SEGMENT="1">
                <IDDAT>023</IDDAT>
                <DATUM>20171025</DATUM>
            </E1EDP03>
            <E1EDP03 SEGMENT="1">
                <IDDAT>022</IDDAT>
                <DATUM>20171025</DATUM>
            </E1EDP03>
            <E1EDP19 SEGMENT="1">
                <QUALF>010</QUALF>
                <IDTNR>0000067745</IDTNR>
            </E1EDP19>
            <E1EDP19 SEGMENT="1">
                <QUALF>001</QUALF>
                <IDTNR>CM-ZZ104</IDTNR>
            </E1EDP19>
            <E1EDP19 SEGMENT="1">
                <QUALF>002</QUALF>
                <IDTNR>000000000003617866</IDTNR>
                <KTEXT>COMPOUND SODIUM LACTATE EP500 BMI/SIN</KTEXT>
            </E1EDP19>
            <E1EDP19 SEGMENT="1">
                <QUALF>901</QUALF>
                <IDTNR>3617866</IDTNR>
                <KTEXT>COMPOUND SODIUM LACTATE EP500 BMI/SIN</KTEXT>
            </E1EDP19>
            <E1EDP19 SEGMENT="1">
                <QUALF>003</QUALF>
                <IDTNR>4030539908863</IDTNR>
            </E1EDP19>
            <E1EDP26 SEGMENT="1">
                <QUALF>004</QUALF>
                <BETRG>1203.00</BETRG>
            </E1EDP26>
            <E1EDP26 SEGMENT="1">
                <QUALF>003</QUALF>
                <BETRG>1203.00</BETRG>
            </E1EDP26>
            <E1EDP26 SEGMENT="1">
                <QUALF>010</QUALF>
                <BETRG>1203.00</BETRG>
            </E1EDP26>
            <E1EDP26 SEGMENT="1">
                <QUALF>011</QUALF>
                <BETRG>1203.00</BETRG>
            </E1EDP26>
            <E1EDP26 SEGMENT="1">
                <QUALF>012</QUALF>
                <BETRG>1203.00</BETRG>
            </E1EDP26>
            <E1EDP26 SEGMENT="1">
                <QUALF>013</QUALF>
                <BETRG>1203.00</BETRG>
            </E1EDP26>
            <E1EDP26 SEGMENT="1">
                <QUALF>014</QUALF>
                <BETRG>1203.00</BETRG>
            </E1EDP26>
            <E1EDP26 SEGMENT="1">
                <QUALF>015</QUALF>
                <BETRG>1203.00</BETRG>
            </E1EDP26>
            <E1EDP26 SEGMENT="1">
                <QUALF>001</QUALF>
                <BETRG>401.00</BETRG>
            </E1EDP26>
            <E1EDP26 SEGMENT="1">
                <QUALF>002</QUALF>
                <BETRG>1203.00</BETRG>
            </E1EDP26>
        </E1EDP01>
        <E1EDP01 SEGMENT="1">
            <POSEX>000030</POSEX>
            <MENGE>7.000</MENGE>
            <MENEE>PCE</MENEE>
            <NTGEW>4.200</NTGEW>
            <GEWEI>KGM</GEWEI>
            <BRGEW>4.200</BRGEW>
            <PSTYV>ZTAN</PSTYV>
            <WERKS>SG01</WERKS>
            <E1EDP02 SEGMENT="1">
                <QUALF>001</QUALF>
                <BELNR>PO-SGH111890</BELNR>
                <DATUM>20171025</DATUM>
            </E1EDP02>
            <E1EDP02 SEGMENT="1">
                <QUALF>002</QUALF>
                <BELNR>1800025089</BELNR>
                <ZEILE>000010</ZEILE>
                <DATUM>20171025</DATUM>
            </E1EDP02>
            <E1EDP02 SEGMENT="1">
                <QUALF>016</QUALF>
                <BELNR>0001012872</BELNR>
                <ZEILE>900002</ZEILE>
                <DATUM>20171026</DATUM>
            </E1EDP02>
            <E1EDP03 SEGMENT="1">
                <IDDAT>029</IDDAT>
                <DATUM>20171025</DATUM>
            </E1EDP03>
            <E1EDP03 SEGMENT="1">
                <IDDAT>045</IDDAT>
                <DATUM>20190410</DATUM>
            </E1EDP03>
            <E1EDP03 SEGMENT="1">
                <IDDAT>001</IDDAT>
                <DATUM>20171026</DATUM>
            </E1EDP03>
            <E1EDP03 SEGMENT="1">
                <IDDAT>011</IDDAT>
                <DATUM>20171025</DATUM>
            </E1EDP03>
            <E1EDP03 SEGMENT="1">
                <IDDAT>025</IDDAT>
                <DATUM>20171025</DATUM>
            </E1EDP03>
            <E1EDP03 SEGMENT="1">
                <IDDAT>027</IDDAT>
                <DATUM>20171025</DATUM>
            </E1EDP03>
            <E1EDP03 SEGMENT="1">
                <IDDAT>023</IDDAT>
                <DATUM>20171025</DATUM>
            </E1EDP03>
            <E1EDP03 SEGMENT="1">
                <IDDAT>022</IDDAT>
                <DATUM>20171025</DATUM>
            </E1EDP03>
            <E1EDP19 SEGMENT="1">
                <QUALF>010</QUALF>
                <IDTNR>CEL12345</IDTNR>
            </E1EDP19>
            <E1EDP19 SEGMENT="1">
                <QUALF>001</QUALF>
                <IDTNR>CM-ZZ104</IDTNR>
            </E1EDP19>
            <E1EDP19 SEGMENT="1">
                <QUALF>002</QUALF>
                <IDTNR>000000000003617866</IDTNR>
                <KTEXT>COMPOUND SODIUM LACTATE EP500 BMI/SIN</KTEXT>
            </E1EDP19>
            <E1EDP19 SEGMENT="1">
                <QUALF>901</QUALF>
                <IDTNR>3617866</IDTNR>
                <KTEXT>COMPOUND SODIUM LACTATE EP500 BMI/SIN</KTEXT>
            </E1EDP19>
            <E1EDP19 SEGMENT="1">
                <QUALF>003</QUALF>
                <IDTNR>4030539908863</IDTNR>
            </E1EDP19>
            <E1EDP26 SEGMENT="1">
                <QUALF>004</QUALF>
                <BETRG>2807.00</BETRG>
            </E1EDP26>
            <E1EDP26 SEGMENT="1">
                <QUALF>010</QUALF>
                <BETRG>2807.00</BETRG>
            </E1EDP26>
            <E1EDP26 SEGMENT="1">
                <QUALF>011</QUALF>
                <BETRG>2807.00</BETRG>
            </E1EDP26>
            <E1EDP26 SEGMENT="1">
                <QUALF>012</QUALF>
                <BETRG>2807.00</BETRG>
            </E1EDP26>
            <E1EDP26 SEGMENT="1">
                <QUALF>013</QUALF>
                <BETRG>2807.00</BETRG>
            </E1EDP26>
            <E1EDP26 SEGMENT="1">
                <QUALF>014</QUALF>
                <BETRG>2807.00</BETRG>
            </E1EDP26>
            <E1EDP26 SEGMENT="1">
                <QUALF>015</QUALF>
                <BETRG>2807.00</BETRG>
            </E1EDP26>
            <E1EDP26 SEGMENT="1">
                <QUALF>001</QUALF>
                <BETRG>401.00</BETRG>
            </E1EDP26>
            <E1EDP26 SEGMENT="1">
                <QUALF>002</QUALF>
                <BETRG>2807.00</BETRG>
            </E1EDP26>
        </E1EDP01>
        <E1EDP01 SEGMENT="1">
            <POSEX>000040</POSEX>
            <MENGE>15.000</MENGE>
            <MENEE>PCE</MENEE>
            <NTGEW>0.615</NTGEW>
            <GEWEI>KGM</GEWEI>
            <BRGEW>0.615</BRGEW>
            <PSTYV>ZTAN</PSTYV>
            <WERKS>SG01</WERKS>
            <E1EDP02 SEGMENT="1">
                <QUALF>001</QUALF>
                <BELNR>PO-SGH111890</BELNR>
                <DATUM>20171025</DATUM>
            </E1EDP02>
            <E1EDP02 SEGMENT="1">
                <QUALF>002</QUALF>
                <BELNR>1800025089</BELNR>
                <ZEILE>000020</ZEILE>
                <DATUM>20171025</DATUM>
            </E1EDP02>
            <E1EDP02 SEGMENT="1">
                <QUALF>016</QUALF>
                <BELNR>0001012872</BELNR>
                <ZEILE>000020</ZEILE>
                <DATUM>20171026</DATUM>
            </E1EDP02>
            <E1EDP03 SEGMENT="1">
                <IDDAT>029</IDDAT>
                <DATUM>20171025</DATUM>
            </E1EDP03>
            <E1EDP03 SEGMENT="1">
                <IDDAT>045</IDDAT>
                <DATUM>20180131</DATUM>
            </E1EDP03>
            <E1EDP03 SEGMENT="1">
                <IDDAT>001</IDDAT>
                <DATUM>20171026</DATUM>
            </E1EDP03>
            <E1EDP03 SEGMENT="1">
                <IDDAT>011</IDDAT>
                <DATUM>20171025</DATUM>
            </E1EDP03>
            <E1EDP03 SEGMENT="1">
                <IDDAT>025</IDDAT>
                <DATUM>20171025</DATUM>
            </E1EDP03>
            <E1EDP03 SEGMENT="1">
                <IDDAT>027</IDDAT>
                <DATUM>20171025</DATUM>
            </E1EDP03>
            <E1EDP03 SEGMENT="1">
                <IDDAT>023</IDDAT>
                <DATUM>20171025</DATUM>
            </E1EDP03>
            <E1EDP03 SEGMENT="1">
                <IDDAT>022</IDDAT>
                <DATUM>20171025</DATUM>
            </E1EDP03>
            <E1EDP19 SEGMENT="1">
                <QUALF>010</QUALF>
                <IDTNR>0I13230E13</IDTNR>
            </E1EDP19>
            <E1EDP19 SEGMENT="1">
                <QUALF>001</QUALF>
                <IDTNR>CM-ZZ123</IDTNR>
            </E1EDP19>
            <E1EDP19 SEGMENT="1">
                <QUALF>002</QUALF>
                <IDTNR>000000000004160266</IDTNR>
                <KTEXT>CERTOFIX MONO V320</KTEXT>
            </E1EDP19>
            <E1EDP19 SEGMENT="1">
                <QUALF>901</QUALF>
                <IDTNR>4160266</IDTNR>
                <KTEXT>CERTOFIX MONO V320</KTEXT>
            </E1EDP19>
            <E1EDP19 SEGMENT="1">
                <QUALF>003</QUALF>
                <IDTNR>4022495020109</IDTNR>
            </E1EDP19>
            <E1EDP26 SEGMENT="1">
                <QUALF>004</QUALF>
                <BETRG>3376.50</BETRG>
            </E1EDP26>
            <E1EDP26 SEGMENT="1">
                <QUALF>003</QUALF>
                <BETRG>3376.50</BETRG>
            </E1EDP26>
            <E1EDP26 SEGMENT="1">
                <QUALF>010</QUALF>
                <BETRG>3376.50</BETRG>
            </E1EDP26>
            <E1EDP26 SEGMENT="1">
                <QUALF>011</QUALF>
                <BETRG>3376.50</BETRG>
            </E1EDP26>
            <E1EDP26 SEGMENT="1">
                <QUALF>012</QUALF>
                <BETRG>3376.50</BETRG>
            </E1EDP26>
            <E1EDP26 SEGMENT="1">
                <QUALF>013</QUALF>
                <BETRG>3376.50</BETRG>
            </E1EDP26>
            <E1EDP26 SEGMENT="1">
                <QUALF>014</QUALF>
                <BETRG>3376.50</BETRG>
            </E1EDP26>
            <E1EDP26 SEGMENT="1">
                <QUALF>015</QUALF>
                <BETRG>3376.50</BETRG>
            </E1EDP26>
            <E1EDP26 SEGMENT="1">
                <QUALF>001</QUALF>
                <BETRG>225.10</BETRG>
            </E1EDP26>
            <E1EDP26 SEGMENT="1">
                <QUALF>002</QUALF>
                <BETRG>3376.50</BETRG>
            </E1EDP26>
        </E1EDP01>
    </IDOC>
</INVOIC02>

我刚刚添加了一个简化的xslt和source xml。

0 个答案:

没有答案